diff --git a/java/res/layout/more_keys_keyboard.xml b/java/res/layout/more_keys_keyboard.xml
index f3795afdc4ca774424e246a04ca4322eb3d00556..449c00f9220d2fbeca6baa9eba2b15ef509c5e11 100644
--- a/java/res/layout/more_keys_keyboard.xml
+++ b/java/res/layout/more_keys_keyboard.xml
@@ -27,5 +27,6 @@
     <com.android.inputmethod.keyboard.MoreKeysKeyboardView
         android:id="@+id/more_keys_keyboard_view"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content" />
+        android:layout_height="wrap_content"
+        style="?attr/moreKeysKeyboardViewStyle" />
 </LinearLayout>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 57e73767c4f84305362f720c52bd85f8e9e91b39..fb29e12b8af928493748f9a97d240eac795635bc 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -173,6 +173,10 @@
         <attr name="suppressKeyPreviewAfterBatchInputDuration" format="integer" />
     </declare-styleable>
 
+    <declare-styleable name="MoreKeysKeyboardView">
+        <attr name="divider" format="reference" />
+    </declare-styleable>
+
     <declare-styleable name="EmojiPalettesView">
         <attr name="categoryIndicatorEnabled" format="boolean" />
         <attr name="categoryIndicatorDrawable" format="reference" />
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index 6805830cbda587885c4b72d30da83febed77ecda..becaddd3553153eef2497dcd31eb930caeadcdb1 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -115,10 +115,7 @@
          for instance delete button, need themed {@link KeyboardView} attributes. -->
     <style name="EmojiPalettesView" />
     <style name="MoreKeysKeyboard" />
-    <style
-        name="MoreKeysKeyboardView"
-        parent="KeyboardView" />
-    <style name="MoreKeysKeyboardContainer" />
+    <style name="MoreKeysKeyboardView" />
     <style name="SuggestionStripView" />
     <style name="SuggestionWord">
         <item name="android:minWidth">@dimen/config_suggestion_min_width</item>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index a9c7294a080390216d7ffdf721e5c13c2113ba90..42d376ce69723e2678f9a2ad41128f3c05a95f50 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -103,6 +103,7 @@
     >
         <item name="android:background">@drawable/keyboard_popup_panel_background_ics</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item>
+        <item name="divider">@drawable/more_keys_divider</item>
         <item name="keyTypeface">normal</item>
         <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
     </style>
diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml
index da5e27fa1016cdddc4be1b877bf701bcea92c434..a16d643ca75ee3151cf7e370f01f7cfae45d03ff 100644
--- a/java/res/values/themes-klp.xml
+++ b/java/res/values/themes-klp.xml
@@ -103,6 +103,7 @@
     >
         <item name="android:background">@drawable/keyboard_popup_panel_background_klp</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_klp</item>
+        <item name="divider">@drawable/more_keys_divider</item>
         <item name="keyTypeface">normal</item>
         <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
     </style>
diff --git a/java/res/values/themes-lxx-dark.xml b/java/res/values/themes-lxx-dark.xml
index c49436c4959aa5280e0bc1af9642e338d0c845a3..a613001ba11ce0e79bc7bdc4d766d1a251197660 100644
--- a/java/res/values/themes-lxx-dark.xml
+++ b/java/res/values/themes-lxx-dark.xml
@@ -101,6 +101,7 @@
     >
         <item name="android:background">@drawable/keyboard_popup_panel_background_lxx_dark</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_lxx_dark</item>
+        <item name="divider">@drawable/more_keys_divider</item>
         <item name="keyTypeface">normal</item>
         <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
     </style>
diff --git a/java/res/values/themes-lxx-light.xml b/java/res/values/themes-lxx-light.xml
index 6f0fb71310c2b4ceffc93e81046f63e076cb5a33..66de27573b5be1fdead0d712e639a20c163f78cc 100644
--- a/java/res/values/themes-lxx-light.xml
+++ b/java/res/values/themes-lxx-light.xml
@@ -101,6 +101,7 @@
     >
         <item name="android:background">@drawable/keyboard_popup_panel_background_lxx_light</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_lxx_light</item>
+        <item name="divider">@drawable/more_keys_divider</item>
         <item name="keyTypeface">normal</item>
         <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
     </style>
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
index 52e2e85badb03acc9e54b9c4a80241c160b5b7cd..73c84cd923e4a64e31ba1a190c45ecd49d4f19fe 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
@@ -18,11 +18,9 @@ package com.android.inputmethod.keyboard;
 
 import android.content.Context;
 import android.graphics.Paint;
-import android.graphics.drawable.Drawable;
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
-import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
 import com.android.inputmethod.latin.R;
@@ -257,7 +255,6 @@ public final class MoreKeysKeyboard extends Keyboard {
 
     public static class Builder extends KeyboardBuilder<MoreKeysKeyboardParams> {
         private final Key mParentKey;
-        private final Drawable mDivider;
 
         private static final float LABEL_PADDING_RATIO = 0.2f;
         private static final float DIVIDER_RATIO = 0.2f;
@@ -306,10 +303,8 @@ public final class MoreKeysKeyboard extends Keyboard {
             }
             final int dividerWidth;
             if (key.needsDividersInMoreKeys()) {
-                mDivider = mResources.getDrawable(R.drawable.more_keys_divider);
                 dividerWidth = (int)(keyWidth * DIVIDER_RATIO);
             } else {
-                mDivider = null;
                 dividerWidth = 0;
             }
             final MoreKeySpec[] moreKeys = key.getMoreKeys();
@@ -352,7 +347,8 @@ public final class MoreKeysKeyboard extends Keyboard {
                 if (params.mDividerWidth > 0 && pos != 0) {
                     final int dividerX = (pos > 0) ? x - params.mDividerWidth
                             : x + params.mDefaultKeyWidth;
-                    final Key divider = new MoreKeyDivider(params, mDivider, dividerX, y);
+                    final Key divider = new MoreKeyDivider(
+                            params, dividerX, y, params.mDividerWidth, params.mDefaultRowHeight);
                     params.onAddKey(divider);
                 }
             }
@@ -360,22 +356,11 @@ public final class MoreKeysKeyboard extends Keyboard {
         }
     }
 
-    private static class MoreKeyDivider extends Key.Spacer {
-        private final Drawable mIcon;
-
-        public MoreKeyDivider(final MoreKeysKeyboardParams params, final Drawable icon,
-                final int x, final int y) {
-            super(params, x, y, params.mDividerWidth, params.mDefaultRowHeight);
-            mIcon = icon;
-        }
-
-        @Override
-        public Drawable getIcon(final KeyboardIconsSet iconSet, final int alpha) {
-            // KeyboardIconsSet and alpha are unused. Use the icon that has been passed to the
-            // constructor.
-            // TODO: Drawable itself should have an alpha value.
-            mIcon.setAlpha(128);
-            return mIcon;
+    // Used as a divider maker. A divider is drawn by {@link MoreKeysKeyboardView}.
+    public static class MoreKeyDivider extends Key.Spacer {
+        public MoreKeyDivider(final KeyboardParams params, final int x, final int y,
+                final int width, final int height) {
+            super(params, x, y, width, height);
         }
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
index 5140c4ffcd38b45a0c6eb51f719bf1d11935f8e3..a9d1239edcf28c8d4f962b4d85e5c31760e586e3 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
@@ -17,6 +17,10 @@
 package com.android.inputmethod.keyboard;
 
 import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
@@ -24,6 +28,7 @@ import android.view.ViewGroup;
 
 import com.android.inputmethod.accessibility.AccessibilityUtils;
 import com.android.inputmethod.accessibility.MoreKeysKeyboardAccessibilityDelegate;
+import com.android.inputmethod.keyboard.internal.KeyDrawParams;
 import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.CoordinateUtils;
@@ -35,6 +40,7 @@ import com.android.inputmethod.latin.utils.CoordinateUtils;
 public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel {
     private final int[] mCoordinates = CoordinateUtils.newInstance();
 
+    private final Drawable mDivider;
     protected final KeyDetector mKeyDetector;
     private Controller mController = EMPTY_CONTROLLER;
     protected KeyboardActionListener mListener;
@@ -53,6 +59,14 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
     public MoreKeysKeyboardView(final Context context, final AttributeSet attrs,
             final int defStyle) {
         super(context, attrs, defStyle);
+        final TypedArray moreKeysKeyboardViewAttr = context.obtainStyledAttributes(attrs,
+                R.styleable.MoreKeysKeyboardView, defStyle, R.style.MoreKeysKeyboardView);
+        mDivider = moreKeysKeyboardViewAttr.getDrawable(R.styleable.MoreKeysKeyboardView_divider);
+        if (mDivider != null) {
+            // TODO: Drawable itself should have an alpha value.
+            mDivider.setAlpha(128);
+        }
+        moreKeysKeyboardViewAttr.recycle();
         mKeyDetector = new MoreKeysDetector(getResources().getDimension(
                 R.dimen.config_more_keys_keyboard_slide_allowance));
     }
@@ -69,6 +83,23 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
         }
     }
 
+    @Override
+    protected void onDrawKeyTopVisuals(final Key key, final Canvas canvas, final Paint paint,
+            final KeyDrawParams params) {
+        if (!key.isSpacer() || !(key instanceof MoreKeysKeyboard.MoreKeyDivider)
+                || mDivider == null) {
+            super.onDrawKeyTopVisuals(key, canvas, paint, params);
+            return;
+        }
+        final int keyWidth = key.getDrawWidth();
+        final int keyHeight = key.getHeight();
+        final int iconWidth = Math.min(mDivider.getIntrinsicWidth(), keyWidth);
+        final int iconHeight = mDivider.getIntrinsicHeight();
+        final int iconX = (keyWidth - iconWidth) / 2; // Align horizontally center
+        final int iconY = (keyHeight - iconHeight) / 2; // Align vertically center
+        drawIcon(canvas, mDivider, iconX, iconY, iconWidth, iconHeight);
+    }
+
     @Override
     public void setKeyboard(final Keyboard keyboard) {
         super.setKeyboard(keyboard);