diff --git a/java/res/drawable-hdpi/sym_bkeyboard_delete_rtl.png b/java/res/drawable-hdpi/sym_bkeyboard_delete_rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..102eac7818597608d70821f5d51b8b9b39260825
Binary files /dev/null and b/java/res/drawable-hdpi/sym_bkeyboard_delete_rtl.png differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_delete_rtl.png b/java/res/drawable-hdpi/sym_keyboard_delete_rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..a508452bdb930737d22de66f5fba4fcd52f3dd23
Binary files /dev/null and b/java/res/drawable-hdpi/sym_keyboard_delete_rtl.png differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_delete_rtl_holo.png b/java/res/drawable-hdpi/sym_keyboard_delete_rtl_holo.png
new file mode 100644
index 0000000000000000000000000000000000000000..a77e4a00ee824abf6d1abc13852d3370471c178e
Binary files /dev/null and b/java/res/drawable-hdpi/sym_keyboard_delete_rtl_holo.png differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_delete_rtl.png b/java/res/drawable-mdpi/sym_bkeyboard_delete_rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..32253ea9b1e8040ba73d3b02b170958b6b31e277
Binary files /dev/null and b/java/res/drawable-mdpi/sym_bkeyboard_delete_rtl.png differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_delete_rtl.png b/java/res/drawable-mdpi/sym_keyboard_delete_rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..d436c23a94e876d4633341cab1f13beacd795630
Binary files /dev/null and b/java/res/drawable-mdpi/sym_keyboard_delete_rtl.png differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_delete_rtl_holo.png b/java/res/drawable-mdpi/sym_keyboard_delete_rtl_holo.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e75d85366e8fa96198c93f80c8a6addbccff4d9
Binary files /dev/null and b/java/res/drawable-mdpi/sym_keyboard_delete_rtl_holo.png differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_delete_rtl_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_delete_rtl_holo.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c19f3258ecea27621b055c15832ac8ebdfdfe5f
Binary files /dev/null and b/java/res/drawable-sw600dp-hdpi/sym_keyboard_delete_rtl_holo.png differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_rtl_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_rtl_holo.png
new file mode 100644
index 0000000000000000000000000000000000000000..994854106288702d4a1a46b6803d81c99c407ca3
Binary files /dev/null and b/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_rtl_holo.png differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_delete_rtl_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_delete_rtl_holo.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3310a1cdd1e85bd2b2e238fc3e1e67c3ead844b
Binary files /dev/null and b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_delete_rtl_holo.png differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_delete_rtl.png b/java/res/drawable-xhdpi/sym_bkeyboard_delete_rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..23aee2b3ba5887b0664df5e57d556d137e109fd2
Binary files /dev/null and b/java/res/drawable-xhdpi/sym_bkeyboard_delete_rtl.png differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_delete_rtl.png b/java/res/drawable-xhdpi/sym_keyboard_delete_rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f9d3dd65d5e492a6b06ffa9446cd4cacddef3db
Binary files /dev/null and b/java/res/drawable-xhdpi/sym_keyboard_delete_rtl.png differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_delete_rtl_holo.png b/java/res/drawable-xhdpi/sym_keyboard_delete_rtl_holo.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f4890c89fa8aa815559c313384981851a87f9c5
Binary files /dev/null and b/java/res/drawable-xhdpi/sym_keyboard_delete_rtl_holo.png differ
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index d0d66d68b38e33663ae45955be5565b3898c7f9f..fa5c08ba7d26fdc5059bb41986804bf0ee581de0 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -157,6 +157,7 @@
         <attr name="iconToSymbolKey" format="reference" />
         <attr name="iconToSymbolKeyWithShortcut" format="reference" />
         <attr name="iconDeleteKey" format="reference" />
+        <attr name="iconDeleteRtlKey" format="reference" />
         <attr name="iconSettingsKey" format="reference" />
         <attr name="iconShortcutKey" format="reference" />
         <attr name="iconSpaceKey" format="reference" />
@@ -218,25 +219,26 @@
             <enum name="iconToSymbolKey" value="2" />
             <enum name="iconToSymbolKeyWithShortcut" value="3" />
             <enum name="iconDeleteKey" value="4" />
-            <enum name="iconSettingsKey" value="5" />
-            <enum name="iconShortcutKey" value="6" />
-            <enum name="iconSpaceKey" value="7" />
-            <enum name="iconReturnKey" value="8" />
-            <enum name="iconSearchKey" value="9" />
-            <enum name="iconTabKey" value="10" />
+            <enum name="iconDeleteRtlKey" value="5" />
+            <enum name="iconSettingsKey" value="6" />
+            <enum name="iconShortcutKey" value="7" />
+            <enum name="iconSpaceKey" value="8" />
+            <enum name="iconReturnKey" value="9" />
+            <enum name="iconSearchKey" value="10" />
+            <enum name="iconTabKey" value="11" />
         </attr>
         <!-- Shift key icon for shifted state -->
         <attr name="keyIconShifted" format="enum">
             <!-- This should be aligned with KeyboardIcons.ICON_SHIFTED_* -->
-            <enum name="iconShiftedShiftKey" value="11" />
+            <enum name="iconShiftedShiftKey" value="12" />
         </attr>
         <!-- The icon to show in the popup preview. -->
         <attr name="keyIconPreview" format="enum">
             <!-- This should be aligned with KeyboardIcons.ICON_PREVIEW_* -->
-            <enum name="iconPreviewSpaceKey" value="12" />
-            <enum name="iconPreviewTabKey" value="13" />
-            <enum name="iconPreviewSettingsKey" value="14" />
-            <enum name="iconPreviewShortcutKey" value="15" />
+            <enum name="iconPreviewSpaceKey" value="13" />
+            <enum name="iconPreviewTabKey" value="14" />
+            <enum name="iconPreviewSettingsKey" value="15" />
+            <enum name="iconPreviewShortcutKey" value="16" />
         </attr>
         <!-- The key style to specify a set of key attributes defined by <key_style/> -->
         <attr name="keyStyle" format="string" />
diff --git a/java/res/values/keyboard-icons-black.xml b/java/res/values/keyboard-icons-black.xml
index e2c68899511f958c3cef9c1d6386c5d5b74d6175..313bf02e15487a0946126e7112c3395aac82ca41 100644
--- a/java/res/values/keyboard-icons-black.xml
+++ b/java/res/values/keyboard-icons-black.xml
@@ -18,12 +18,14 @@
     <style name="KeyboardIcons.Black">
         <!-- Keyboard icons -->
         <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are too
-             large for phone.
+             ambiguous.
              sym_bkeyboard_voice_off
           -->
         <item name="iconShiftKey">@drawable/sym_bkeyboard_shift</item>
         <item name="iconToSymbolKeyWithShortcut">@drawable/sym_bkeyboard_123_mic</item>
         <item name="iconDeleteKey">@drawable/sym_bkeyboard_delete</item>
+        <!-- TODO: update this icon drawable -->
+        <item name="iconDeleteRtlKey">@drawable/sym_bkeyboard_delete_rtl</item>
         <item name="iconSettingsKey">@drawable/sym_bkeyboard_settings</item>
         <item name="iconShortcutKey">@drawable/sym_bkeyboard_mic</item>
         <item name="iconSpaceKey">@drawable/sym_bkeyboard_space</item>
diff --git a/java/res/values/keyboard-icons-ics.xml b/java/res/values/keyboard-icons-ics.xml
index bf2d13d300483763ad45db10eea685193ce519b6..a2bfd7a2fe59040abcd2c68d8c419f42546411b6 100644
--- a/java/res/values/keyboard-icons-ics.xml
+++ b/java/res/values/keyboard-icons-ics.xml
@@ -17,27 +17,14 @@
 <resources>
     <style name="KeyboardIcons.IceCreamSandwich">
         <!-- Keyboard icons -->
-        <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are too
-             large for phone.
-             sym_keyboard_shift_holo
-             sym_keyboard_shift_locked_holo
-             sym_keyboard_delete_holo,
-             sym_keyboard_settings_holo
-             sym_keyboard_voice_holo
-             sym_keyboard_voice_holo_off
-             sym_keyboard_space_holo
-             sym_keyboard_return_holo
-             sym_keyboard_tab_holo
-             -->
         <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are missing.
              sym_keyboard_123_mic_holo
-             sym_keyboard_search_holo
-             sym_keyboard_feedback_tab_holo
-             sym_keyboard_feedback_voice_holo
              -->
         <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo</item>
         <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic_holo</item>
         <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item>
+        <!-- TODO: update this icon drawable -->
+        <item name="iconDeleteRtlKey">@drawable/sym_keyboard_delete_rtl_holo</item>
         <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item>
         <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item>
         <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo</item>
diff --git a/java/res/values/keyboard-icons-white.xml b/java/res/values/keyboard-icons-white.xml
index 8bc7539fa7b344c5906679873a023b41b6a14029..b6fa89026b07cef54efa2020b9d71673be326196 100644
--- a/java/res/values/keyboard-icons-white.xml
+++ b/java/res/values/keyboard-icons-white.xml
@@ -20,6 +20,8 @@
         <item name="iconShiftKey">@drawable/sym_keyboard_shift</item>
         <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic</item>
         <item name="iconDeleteKey">@drawable/sym_keyboard_delete</item>
+        <!-- TODO: update this icon drawable -->
+        <item name="iconDeleteRtlKey">@drawable/sym_keyboard_delete_rtl</item>
         <item name="iconSettingsKey">@drawable/sym_keyboard_settings</item>
         <item name="iconShortcutKey">@drawable/sym_keyboard_mic</item>
         <item name="iconSpaceKey">@drawable/sym_keyboard_space</item>
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index 3d86003919148a45264e6a0158c1dcbe9a35e9b3..cc949c9dc8b0eb7d67f7420b5e9592966424ce39 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -59,12 +59,24 @@
         latin:keyIconShifted="iconShiftedShiftKey"
         latin:parentStyle="functionalKeyStyle"
         latin:isSticky="true" />
-    <key-style
-        latin:styleName="deleteKeyStyle"
-        latin:code="@integer/key_delete"
-        latin:keyIcon="iconDeleteKey"
-        latin:parentStyle="functionalKeyStyle"
-        latin:isRepeatable="true" />
+    <switch>
+        <case latin:localeCode="ar|iw">
+            <key-style
+                latin:styleName="deleteKeyStyle"
+                latin:code="@integer/key_delete"
+                latin:keyIcon="iconDeleteRtlKey"
+                latin:parentStyle="functionalKeyStyle"
+                latin:isRepeatable="true" />
+        </case>
+        <default>
+            <key-style
+                latin:styleName="deleteKeyStyle"
+                latin:code="@integer/key_delete"
+                latin:keyIcon="iconDeleteKey"
+                latin:parentStyle="functionalKeyStyle"
+                latin:isRepeatable="true" />
+        </default>
+    </switch>
     <!-- Return key style -->
     <switch>
         <case
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
index 1530fed6fdbe812260d8a52d65e759339b6d8741..535a6954cf4dc854b88f66bf470c7fef23e1c962 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
@@ -34,21 +34,22 @@ public class KeyboardIconsSet {
     private static final int ICON_TO_SYMBOL_KEY = 2;
     private static final int ICON_TO_SYMBOL_KEY_WITH_SHORTCUT = 3;
     private static final int ICON_DELETE_KEY = 4;
-    private static final int ICON_SETTINGS_KEY = 5;
-    private static final int ICON_SHORTCUT_KEY = 6;
-    private static final int ICON_SPACE_KEY = 7;
-    private static final int ICON_RETURN_KEY = 8;
-    private static final int ICON_SEARCH_KEY = 9;
-    private static final int ICON_TAB_KEY = 10;
+    private static final int ICON_DELETE_RTL_KEY = 5;
+    private static final int ICON_SETTINGS_KEY = 6;
+    private static final int ICON_SHORTCUT_KEY = 7;
+    private static final int ICON_SPACE_KEY = 8;
+    private static final int ICON_RETURN_KEY = 9;
+    private static final int ICON_SEARCH_KEY = 10;
+    private static final int ICON_TAB_KEY = 11;
     // This should be aligned with Keyboard.keyIconShifted enum.
-    private static final int ICON_SHIFTED_SHIFT_KEY = 11;
+    private static final int ICON_SHIFTED_SHIFT_KEY = 12;
     // This should be aligned with Keyboard.keyIconPreview enum.
-    private static final int ICON_PREVIEW_SPACE_KEY = 12;
-    private static final int ICON_PREVIEW_TAB_KEY = 13;
-    private static final int ICON_PREVIEW_SETTINGS_KEY = 14;
-    private static final int ICON_PREVIEW_SHORTCUT_KEY = 15;
+    private static final int ICON_PREVIEW_SPACE_KEY = 13;
+    private static final int ICON_PREVIEW_TAB_KEY = 14;
+    private static final int ICON_PREVIEW_SETTINGS_KEY = 15;
+    private static final int ICON_PREVIEW_SHORTCUT_KEY = 16;
 
-    private static final int ICON_LAST = 15;
+    private static final int ICON_LAST = 16;
 
     private final Drawable mIcons[] = new Drawable[ICON_LAST + 1];
 
@@ -62,6 +63,8 @@ public class KeyboardIconsSet {
             return ICON_TO_SYMBOL_KEY_WITH_SHORTCUT;
         case R.styleable.Keyboard_iconDeleteKey:
             return ICON_DELETE_KEY;
+        case R.styleable.Keyboard_iconDeleteRtlKey:
+            return ICON_DELETE_RTL_KEY;
         case R.styleable.Keyboard_iconSettingsKey:
             return ICON_SETTINGS_KEY;
         case R.styleable.Keyboard_iconShortcutKey: