diff --git a/java/res/xml-sw600dp/key_comma.xml b/java/res/xml-sw600dp/key_comma.xml
new file mode 100644
index 0000000000000000000000000000000000000000..67199e237017f282ece8f341781a690dba087c44
--- /dev/null
+++ b/java/res/xml-sw600dp/key_comma.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- The table comma key which may have settings as popup key. -->
+    <!-- Kept as a separate file for cleaner overriding by an overlay.  -->
+    <key-style
+        latin:styleName="baseTabletCommaKeyStyle"
+        latin:keySpec="!text/keyspec_tablet_comma"
+        latin:keyHintLabel="!text/keyhintlabel_tablet_comma"
+        latin:keyLabelFlags="hasPopupHint"
+        latin:parentStyle="hasShiftedLetterHintStyle" />
+    <switch>
+        <case
+            latin:clobberSettingsKey="true"
+        >
+            <Key
+                latin:moreKeys="!text/morekeys_tablet_comma"
+                latin:keyStyle="baseTabletCommaKeyStyle" />
+        </case>
+        <!-- clobberSettingsKey="false" -->
+        <default>
+            <Key
+                latin:moreKeys="!text/morekeys_tablet_comma,!text/keyspec_settings"
+                latin:keyStyle="baseTabletCommaKeyStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/key_period.xml
similarity index 81%
rename from java/res/xml-sw600dp/keys_comma_period.xml
rename to java/res/xml-sw600dp/key_period.xml
index 23172cf18939a00daf77cdc61c70fea56222e2db..d2909d82d8fccc79521245aeaada1d0eb75fb4da 100644
--- a/java/res/xml-sw600dp/keys_comma_period.xml
+++ b/java/res/xml-sw600dp/key_period.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2013, The Android Open Source Project
+** Copyright 2014, The Android Open Source Project
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -21,13 +21,8 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Key
-        latin:keySpec="!text/keyspec_tablet_comma"
-        latin:keyHintLabel="!text/keyhintlabel_tablet_comma"
-        latin:keyLabelFlags="hasPopupHint"
-        latin:moreKeys="!text/morekeys_tablet_comma"
-        latin:backgroundType="functional"
-        latin:keyStyle="hasShiftedLetterHintStyle" />
+    <!-- The table period key which may have different label depending on locale -->
+    <!-- Kept as a separate file for cleaner overriding by an overlay.  -->
     <switch>
         <case
             latin:languageCode="hi"
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index c5506b5aba8cb309890dc04a30e44987d347dc8c..7de27690151f377e2d3e952d57f8c574852543d7 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -35,6 +35,9 @@
                 latin:keyLabelFlags="hasShiftedLetterHint" />
         </default>
     </switch>
+    <!-- Base key style for the key which may have settings key as more keys. -->
+    <include
+        latin:keyboardLayout="@xml/key_styles_settings" />
     <!-- Functional key styles -->
     <!-- Base style for shift key. A single space is used for dummy label in moreKeys. -->
     <key-style
diff --git a/java/res/xml-sw600dp/row_dvorak4.xml b/java/res/xml-sw600dp/row_dvorak4.xml
index d3709ef6d743e3105630e2ba5387a393b16d90a4..ab2b5603d29f388beb24c72eab7de6a34f76cb08 100644
--- a/java/res/xml-sw600dp/row_dvorak4.xml
+++ b/java/res/xml-sw600dp/row_dvorak4.xml
@@ -30,19 +30,19 @@
             latin:keyWidth="10.0%p" />
         <include
             latin:keyboardLayout="@xml/key_settings" />
-        <include
-            latin:keyboardLayout="@xml/key_f1" />
+        <Key
+            latin:keySpec="_"
+            latin:keyHintLabel="-"
+            latin:moreKeys="-"
+            latin:keyStyle="hasShiftedLetterHintStyle" />
         <include
             latin:keyXPos="28.0%p"
             latin:keyboardLayout="@xml/key_space_5kw"
             latin:backgroundType="normal" />
+        <include
+            latin:keyboardLayout="@xml/key_f1" />
         <include
             latin:keyboardLayout="@xml/key_question_exclamation" />
-        <Key
-            latin:keySpec="-"
-            latin:keyHintLabel="_"
-            latin:moreKeys="_"
-            latin:keyStyle="hasShiftedLetterHintStyle" />
         <include
             latin:keyboardLayout="@xml/key_f2" />
     </Row>
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index d93143761995e87ff533e0b7530a9a13e23f0372..0eb86f2d45d385fb1e923b49f440c5865f69159e 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -29,15 +29,18 @@
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyWidth="10.0%p" />
         <include
-            latin:keyboardLayout="@xml/key_settings" />
-        <include
-            latin:keyboardLayout="@xml/key_f1" />
+            latin:keyboardLayout="@xml/key_comma" />
+        <Key
+            latin:keySpec="_" />
+        <!-- Space key. -->
         <include
             latin:keyXPos="28.0%p"
             latin:keyboardLayout="@xml/key_space_5kw"
             latin:backgroundType="normal" />
         <include
-            latin:keyboardLayout="@xml/keys_comma_period" />
+            latin:keyboardLayout="@xml/key_f1" />
+        <include
+            latin:keyboardLayout="@xml/key_period" />
         <include
             latin:keyboardLayout="@xml/key_f2" />
     </Row>
diff --git a/java/res/xml/key_f1.xml b/java/res/xml/key_f1.xml
index 3471c85f59e9ced0160743f67cf9fcc200657fd8..7bd7385a14132b7236d59a42f298f9c319011831 100644
--- a/java/res/xml/key_f1.xml
+++ b/java/res/xml/key_f1.xml
@@ -27,20 +27,20 @@
         >
             <Key
                 latin:keySpec="/"
-                latin:keyStyle="f1MoreKeysStyle" />
+                latin:keyStyle="settingsMoreKeysStyle" />
         </case>
         <case
             latin:mode="email"
         >
             <Key
                 latin:keySpec="\@"
-                latin:keyStyle="f1MoreKeysStyle" />
+                latin:keyStyle="settingsMoreKeysStyle" />
         </case>
         <default>
             <Key
                 latin:keySpec="!text/keyspec_comma"
                 latin:keyLabelFlags="hasPopupHint"
-                latin:keyStyle="f1MoreKeysStyle" />
+                latin:keyStyle="settingsMoreKeysStyle" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index 9d5d52e163d378d9654fb375e1ff6dffaa5d3d12..8b3bb2e5cced8da757a145e69c1841c764e6e76a 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -35,9 +35,9 @@
                 latin:keyLabelFlags="hasShiftedLetterHint" />
         </default>
     </switch>
-    <!-- Base key style for the key which may have settings or tab key as popup key. -->
+    <!-- Base key style for the key which may have settings key as more keys. -->
     <include
-        latin:keyboardLayout="@xml/key_styles_f1" />
+        latin:keyboardLayout="@xml/key_styles_settings" />
     <!-- Functional key styles -->
     <!-- Base style for shift key. A single space is used for dummy label in moreKeys. -->
     <key-style
@@ -104,7 +104,7 @@
         latin:keyIconDisabled="!icon/shortcut_key_disabled"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:altCode="!code/key_space"
-        latin:parentStyle="f1MoreKeysStyle" />
+        latin:parentStyle="settingsMoreKeysStyle" />
     <key-style
         latin:styleName="settingsKeyStyle"
         latin:keySpec="!icon/settings_key|!code/key_settings"
diff --git a/java/res/xml/keys_less_greater.xml b/java/res/xml/key_styles_less_greater.xml
similarity index 77%
rename from java/res/xml/keys_less_greater.xml
rename to java/res/xml/key_styles_less_greater.xml
index 778de02a12e95f45257c63bf2078d25d3b923de7..db4c7984b24f0a0cae335457e93125aaa69555b8 100644
--- a/java/res/xml/keys_less_greater.xml
+++ b/java/res/xml/key_styles_less_greater.xml
@@ -21,25 +21,31 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
+    <!-- The less and greater keys' style which may have different label depending on locale. -->
+    <!-- Kept as a separate file for cleaner overriding by an overlay.  -->
     <switch>
         <case
             latin:languageCode="fa"
         >
-            <Key
+            <key-style
+                latin:styleName="lessKeyStyle"
                 latin:keySpec="!text/keyspec_left_double_angle_quote"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/morekeys_less_than" />
-            <Key
+            <key-style
+                latin:styleName="greaterKeyStyle"
                 latin:keySpec="!text/keyspec_right_double_angle_quote"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/morekeys_greater_than" />
         </case>
         <default>
-            <Key
+            <key-style
+                latin:styleName="lessKeyStyle"
                 latin:keySpec="!text/keyspec_less_than"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/morekeys_less_than" />
-            <Key
+            <key-style
+                latin:styleName="greaterKeyStyle"
                 latin:keySpec="!text/keyspec_greater_than"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/morekeys_greater_than" />
diff --git a/java/res/xml/key_styles_f1.xml b/java/res/xml/key_styles_settings.xml
similarity index 86%
rename from java/res/xml/key_styles_f1.xml
rename to java/res/xml/key_styles_settings.xml
index 8a07827faf57230e89405b12ec6aed8248d4c859..956b402359426dcc88faed2c9186f7b27c39d565 100644
--- a/java/res/xml/key_styles_f1.xml
+++ b/java/res/xml/key_styles_settings.xml
@@ -21,20 +21,20 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <!-- Base key style for the key which may have settings or tab key as popup key. -->
+    <!-- Base key style for the key which may have settings key as more keys. -->
     <!-- Kept as a separate file for cleaner overriding by an overlay.  -->
     <switch>
         <case
             latin:clobberSettingsKey="true"
         >
             <key-style
-                latin:styleName="f1MoreKeysStyle"
+                latin:styleName="settingsMoreKeysStyle"
                 latin:backgroundType="functional" />
         </case>
         <!-- clobberSettingsKey="false" -->
         <default>
             <key-style
-                latin:styleName="f1MoreKeysStyle"
+                latin:styleName="settingsMoreKeysStyle"
                 latin:keyLabelFlags="hasPopupHint"
                 latin:moreKeys="!text/keyspec_settings"
                 latin:backgroundType="functional" />
diff --git a/java/res/xml/keys_comma_period_symbols.xml b/java/res/xml/keys_comma_period_symbols.xml
deleted file mode 100644
index 843595c2743cda109bd692777ac4d4afa19f7eae..0000000000000000000000000000000000000000
--- a/java/res/xml/keys_comma_period_symbols.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Key
-        latin:keySpec="!text/keyspec_comma" />
-    <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
-    <Key
-        latin:keySpec="."
-        latin:moreKeys="&#x2026;" />
-</merge>
diff --git a/java/res/xml/row_dvorak4.xml b/java/res/xml/row_dvorak4.xml
index 279f6462768b8c2add5e7b8951b239cc67e8602e..e7a3ee736120a0f45b7ebfabbd1f9103b94e8e36 100644
--- a/java/res/xml/row_dvorak4.xml
+++ b/java/res/xml/row_dvorak4.xml
@@ -30,7 +30,7 @@
         <Key
             latin:keySpec="q"
             latin:backgroundType="normal"
-            latin:keyStyle="f1MoreKeysStyle" />
+            latin:keyStyle="settingsMoreKeysStyle" />
         <include
             latin:keyXPos="25%p"
             latin:keyboardLayout="@xml/key_space_5kw" />
diff --git a/java/res/xml/row_symbols4.xml b/java/res/xml/row_symbols4.xml
index 09f6b628c78fb0609923d47ff2d64e162120d186..2be03bd6d5d65088b7a37c7da7a706ad855e0443 100644
--- a/java/res/xml/row_symbols4.xml
+++ b/java/res/xml/row_symbols4.xml
@@ -20,11 +20,15 @@
 
 <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
     <Key
-        latin:keySpec="_" />
+        latin:keySpec="!text/keyspec_comma" />
     <Key
-        latin:keySpec="/" />
+        latin:keySpec="_" />
     <include
         latin:keyboardLayout="@xml/key_space_symbols" />
-    <include
-        latin:keyboardLayout="@xml/keys_comma_period_symbols" />
+    <Key
+        latin:keySpec="/" />
+    <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
+    <Key
+        latin:keySpec="."
+        latin:moreKeys="&#x2026;" />
 </merge>
diff --git a/java/res/xml/row_symbols_shift4.xml b/java/res/xml/row_symbols_shift4.xml
index f75575bc670dddd8f5b5fc75b4bea96c3425ebf5..4fc63c2c592268cc686aaaac03f54beb063cf275 100644
--- a/java/res/xml/row_symbols_shift4.xml
+++ b/java/res/xml/row_symbols_shift4.xml
@@ -18,9 +18,18 @@
 */
 -->
 <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
-
-    <include latin:keyboardLayout="@xml/keys_less_greater" />
+    <include
+        latin:keyboardLayout="@xml/key_styles_less_greater" />
+    <Key
+        latin:keySpec="!text/keyspec_comma" />
+    <Key
+        latin:keyStyle="lessKeyStyle" />
     <include
         latin:keyboardLayout="@xml/key_space_symbols" />
-    <include latin:keyboardLayout="@xml/keys_comma_period_symbols" />
+    <Key
+        latin:keyStyle="greaterKeyStyle" />
+    <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
+    <Key
+        latin:keySpec="."
+        latin:moreKeys="&#x2026;" />
 </merge>
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 40c915c8dabecefea33547239c541829471423f8..ab255580260822a68a81e1c313399702e5332eda 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -602,7 +602,7 @@ public final class KeyboardTextsTable {
         /* keyspec_right_double_angle_quote */ "\u00BB|\u00AB",
         /* keyspec_left_single_angle_quote */ "\u2039|\u203A",
         /* keyspec_right_single_angle_quote */ "\u203A|\u2039",
-        /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,\",\'",
+        /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,\",\'",
         // U+0651: "Ù‘" ARABIC SHADDA
         /* keyhintlabel_period */ "\u0651",
         /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
@@ -1551,7 +1551,7 @@ public final class KeyboardTextsTable {
         /* keyspec_right_double_angle_quote */ "\u00BB|\u00AB",
         /* keyspec_left_single_angle_quote */ "\u2039|\u203A",
         /* keyspec_right_single_angle_quote */ "\u203A|\u2039",
-        /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
+        /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
         // U+064B: "Ù‹" ARABIC FATHATAN
         /* keyhintlabel_period */ "\u064B",
         /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
index b0493d3f13bfce5f06ad5e6a4d5bce7f8f8d22c5..fa818654e40fab90a5a615a252125503273e0839 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
@@ -74,7 +74,12 @@ public final class Arabic extends LayoutBase {
                 // U+060C: "،" ARABIC COMMA
                 return joinKeys(key("\u060C", SETTINGS_KEY));
             }
-            return super.getKeysLeftToSpacebar(isPhone);
+            // U+060C: "،" ARABIC COMMA
+            // U+061F: "ØŸ" ARABIC QUESTION MARK
+            // U+061B: "Ø›" ARABIC SEMICOLON
+            return joinKeys(key("\u060C", joinMoreKeys(
+                    ":", "!", "\u061F", "\u061B", "-", "\"", "'", SETTINGS_KEY)),
+                    "_");
         }
 
         @Override
@@ -85,9 +90,7 @@ public final class Arabic extends LayoutBase {
             // U+060C: "،" ARABIC COMMA
             // U+061F: "ØŸ" ARABIC QUESTION MARK
             // U+061B: "Ø›" ARABIC SEMICOLON
-            return joinKeys(
-                    key("\u060C", joinMoreKeys(":", "!", "\u061F", "\u061B", "-", "/", "\"", "'")),
-                    key(".", getPunctuationMoreKeys(isPhone)));
+            return joinKeys("/", key(".", getPunctuationMoreKeys(isPhone)));
         }
 
         @Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
index 204bb01f743921ac5c7d1947dbd67bbebea199ec..eb64b832bca1a252977944b4cfcae3cfc33603df 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
@@ -55,12 +55,20 @@ public final class ArmenianPhonetic extends LayoutBase {
                     SHIFT_KEY);
         }
 
+        @Override
+        public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+            // U+002C: "," COMMA
+            // U+055D: "՝" ARMENIAN COMMA
+            return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY))
+                    : joinKeys(key("\u055D", SETTINGS_KEY), "_");
+        }
+
         @Override
         public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
             // U+0589: "Ö‰" ARMENIAN FULL STOP
             // U+055D: "՝" ARMENIAN COMMA
             final ExpectedKey fullStopKey = key("\u0589", getPunctuationMoreKeys(isPhone));
-            return isPhone ? joinKeys(fullStopKey) : joinKeys("\u055D", fullStopKey);
+            return isPhone ? joinKeys(fullStopKey) : joinKeys("/", fullStopKey);
         }
 
         @Override
@@ -121,7 +129,7 @@ public final class ArmenianPhonetic extends LayoutBase {
         } else {
             builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(3, ENTER_KEY)
-                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
                     .addKeysOnTheRightOfRow(5, EMOJI_KEY);
         }
         builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
index 7ba1d78766139a14c18098fd2e9a36028573405d..e75cfd0ff730cef68687af6694ca761412aac617 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
@@ -51,7 +51,8 @@ public final class Dvorak extends LayoutBase {
 
         @Override
         public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
-            return isPhone ? joinKeys(key("q", SETTINGS_KEY)) : joinKeys(key("/"));
+            return isPhone ? joinKeys(key("q", SETTINGS_KEY)) :
+                joinKeys(SETTINGS_KEY, key("_", moreKey("-")));
         }
 
         @Override
@@ -60,7 +61,7 @@ public final class Dvorak extends LayoutBase {
                     convertToAdditionalMoreKeys(getPunctuationMoreKeys(isPhone));
             return isPhone
                     ? joinKeys(key("z", punctuationMoreKeys))
-                    : joinKeys(key("?", moreKey("!")), key("-", moreKey("_")));
+                    : joinKeys("/", key("?", moreKey("!")));
         }
 
         private static ExpectedAdditionalMoreKey[] convertToAdditionalMoreKeys(
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
index 16d2f86843aed7aec4776f53930918aeb3498cd7..a513740e78e5c0085352b98fc7dca2217b1305ea 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
@@ -72,7 +72,13 @@ public final class Farsi extends LayoutBase {
                 // U+060C: "،" ARABIC COMMA
                 return joinKeys(key("\u060C", SETTINGS_KEY));
             }
-            return super.getKeysLeftToSpacebar(isPhone);
+            // U+060C: "،" ARABIC COMMA
+            // U+061F: "ØŸ" ARABIC QUESTION MARK
+            // U+061B: "Ø›" ARABIC SEMICOLON
+            return joinKeys(key("\u060C", joinMoreKeys(
+                    ":", "!", "\u061F", "\u061B", "-", RtlSymbols.DOUBLE_ANGLE_QUOTES_LR_RTL,
+                    SETTINGS_KEY)),
+                    "_");
         }
 
         @Override
@@ -80,13 +86,7 @@ public final class Farsi extends LayoutBase {
             if (isPhone) {
                 return super.getKeysRightToSpacebar(isPhone);
             }
-            // U+060C: "،" ARABIC COMMA
-            // U+061F: "ØŸ" ARABIC QUESTION MARK
-            // U+061B: "Ø›" ARABIC SEMICOLON
-            return joinKeys(
-                    key("\u060C", joinMoreKeys(":", "!", "\u061F", "\u061B", "-", "/",
-                            RtlSymbols.DOUBLE_ANGLE_QUOTES_LR_RTL)),
-                    key(".", getPunctuationMoreKeys(isPhone)));
+            return joinKeys("/", key(".", getPunctuationMoreKeys(isPhone)));
         }
 
         @Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
index cf20149ae99c1e32b66ef63adc1a01615f7abc48..a7f6823403bd249ea4ad76f14cc2fbcec6a37611 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
@@ -50,7 +50,7 @@ public final class HindiCompact extends LayoutBase {
         public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
             // U+0964: "।" DEVANAGARI DANDA
             final ExpectedKey periodKey = key("\u0964", getPunctuationMoreKeys(isPhone));
-            return isPhone ? joinKeys(periodKey) : joinKeys(",", periodKey);
+            return isPhone ? joinKeys(periodKey) : joinKeys("/", periodKey);
         }
 
         @Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
index e7f6a6552078135e05164d69f9a57688464f07b1..143ccf6eb46e8ba56264d704242e76d4a4f30aa2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
@@ -94,7 +94,7 @@ public final class Khmer extends LayoutBase {
         } else {
             builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(3, ENTER_KEY)
-                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
                     .addKeysOnTheRightOfRow(5, EMOJI_KEY);
         }
         builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
index 6f2ef216f68391c1a847105991e964c03e52b80f..e7be9982ad10a58f16fb19e0a884dff978195d6c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
@@ -98,7 +98,7 @@ public final class Lao extends LayoutBase {
         } else {
             builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(3, ENTER_KEY)
-                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
                     .addKeysOnTheRightOfRow(5, EMOJI_KEY);
         }
         builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
index e4e95548fe8b945053ef81ae8d5536be8ca194f2..c5223720c01a6a5355aebdf8d3b2b69d33942226 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
@@ -161,7 +161,8 @@ public abstract class LayoutBase extends AbstractLayoutBase {
          */
         public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
             // U+002C: "," COMMA
-            return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY)) : joinKeys("/");
+            return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY))
+                    : joinKeys(key("\u002C", SETTINGS_KEY), "_");
         }
 
         /**
@@ -171,7 +172,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
          */
         public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
             final ExpectedKey periodKey = key(".", getPunctuationMoreKeys(isPhone));
-            return isPhone ? joinKeys(periodKey) : joinKeys(",", periodKey);
+            return isPhone ? joinKeys(periodKey) : joinKeys("/", periodKey);
         }
 
         /**
@@ -296,7 +297,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
         } else {
             builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(2, ENTER_KEY)
-                    .addKeysOnTheLeftOfRow(4, customizer.getSymbolsKey(), SETTINGS_KEY)
+                    .addKeysOnTheLeftOfRow(4, customizer.getSymbolsKey())
                     .addKeysOnTheRightOfRow(4, EMOJI_KEY);
         }
         builder.addKeysOnTheLeftOfRow(3, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java b/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
index 2d1c901b9fc6815901e15a10d910b7f9179cc5e4..1b571acc692c1e25f9b51ea41a37041416e6af1c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
@@ -47,13 +47,19 @@ public final class Myanmar extends LayoutBase {
             return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
         }
 
+        @Override
+        public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+            // U+002C: "," COMMA
+            // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
+            return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY))
+                    : joinKeys(key("\u104A", moreKey(","), SETTINGS_KEY), "_");
+        }
+
         @Override
         public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
             // U+104B: "။" MYANMAR SIGN SECTION
-            // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
             final ExpectedKey periodKey = key("\u104B", getPunctuationMoreKeys(isPhone));
-            final ExpectedKey commaKey = key("\u104A", moreKey(","));
-            return isPhone ? joinKeys(periodKey) : joinKeys(commaKey, periodKey);
+            return isPhone ? joinKeys(periodKey) : joinKeys("/", periodKey);
         }
 
         @Override
@@ -106,7 +112,7 @@ public final class Myanmar extends LayoutBase {
         } else {
             builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(3, ENTER_KEY)
-                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
                     .addKeysOnTheRightOfRow(5, EMOJI_KEY);
         }
         builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
index 726fefc683b579ed1a3897d9b89cd5cbb38de5e7..5f3e4b19692ba10d304d8beb41bfd4f83fe3c58c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
@@ -167,7 +167,7 @@ public class Symbols extends AbstractLayoutBase {
                     // U+00BF: "¿" INVERTED QUESTION MARK
                     key("?", moreKey("\u00BF")))
             .setKeysOfRow(4,
-                    key("_"), key("/"), SPACE_KEY, key(","),
+                    key(","), key("_"), SPACE_KEY, key("/"),
                     // U+2026: "…" HORIZONTAL ELLIPSIS
                     key(".", moreKey("\u2026")))
             .build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
index f611310affc63b82751c610627f6d09cd6a27d5e..3265e10e1acfdc49caa1683d64938d77019d04d1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
@@ -117,15 +117,16 @@ public class SymbolsShifted extends AbstractLayoutBase {
                     // U+2105: "â„…" CARE OF
                     "\\", "\u00A9", "\u00AE", "\u2122", "\u2105", "[", "]")
             .setKeysOfRow(4,
+                    ",",
                     // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
                     // U+2264: "≤" LESS-THAN OR EQUAL TO
                     // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
                     key("<", joinMoreKeys("\u2039", "\u2264", "\u00AB")),
+                    SPACE_KEY,
                     // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
                     // U+2265: "≥" GREATER-THAN EQUAL TO
                     // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
                     key(">", joinMoreKeys("\u203A", "\u2265", "\u00BB")),
-                    SPACE_KEY, ",",
                     // U+2026: "…" HORIZONTAL ELLIPSIS
                     key(".", moreKey("\u2026")))
             .build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
index 253c93b83d5049d33acca97536af867047dc373f..af4abea9332847c7b707bdf48c136eaf30311150 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
@@ -111,7 +111,7 @@ public final class Thai extends LayoutBase {
         } else {
             builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(3, ENTER_KEY)
-                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+                    .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
                     .addKeysOnTheRightOfRow(5, EMOJI_KEY);
         }
         builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
index 4ecb10533aff763204c8f74ad380f882adff1308..ab78f45c653abad9c9a8111a6c6b82ade26cbf85 100644
--- a/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
@@ -80,7 +80,7 @@
          U+061B: "Ø›" ARABIC SEMICOLON -->
     <string name="keyspec_tablet_comma">"&#x060C;"</string>
     <string name="keyhintlabel_tablet_comma">"&#x061F;"</string>
-    <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,/,\",\'"</string>
+    <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,\",\'"</string>
     <!-- U+266A: "♪" EIGHTH NOTE -->
     <string name="morekeys_bullet">&#x266A;</string>
     <!-- U+2605: "★" BLACK STAR
diff --git a/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
index bdbc92afac1ad95df2d1d9989bff74dbb9d62df0..58f4555043d8af50241aa12bf6ba817d6edfb6b7 100644
--- a/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
@@ -82,7 +82,7 @@
          U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
     <string name="keyspec_tablet_comma">"&#x060C;"</string>
     <string name="keyhintlabel_tablet_comma">"&#x061F;"</string>
-    <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,/,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote"</string>
+    <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote"</string>
     <!-- U+FDFC: "ï·¼" RIAL SIGN -->
     <string name="keyspec_currency">&#xFDFC;</string>
     <!-- U+266A: "♪" EIGHTH NOTE -->