diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 51bdc2c..1e95e8a 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -1073,7 +1073,8 @@
         mMiniKeyboardOriginY = y + container.getPaddingTop();
         mMiniKeyboard.setPopupOffset((x < 0) ? 0 : x, y);
         mMiniKeyboard.setShifted(isShifted());
-        mMiniKeyboard.setPreviewEnabled(isPreviewEnabled());
+        // Mini keyboard needs no pop-up key preview displayed.
+        mMiniKeyboard.setPreviewEnabled(false);
         mMiniKeyboardPopup.setContentView(container);
         mMiniKeyboardPopup.setWidth(container.getMeasuredWidth());
         mMiniKeyboardPopup.setHeight(container.getMeasuredHeight());
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
index 4295427..8f20a22 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
@@ -78,17 +78,6 @@
         setKeyboardLocal(k);
     }
 
-    private static boolean hasOneDigitAlternate(Key key) {
-        final CharSequence alternates = key.popupCharacters;
-        if (alternates == null)
-            return false;
-        final String altChars = alternates.toString();
-        if (altChars.codePointCount(0, altChars.length()) != 1)
-            return false;
-        final int altCode = altChars.codePointAt(0);
-        return altCode >= '0' && altCode <= '9';
-    }
-
     @Override
     protected boolean onLongPress(Key key) {
         int primaryCode = key.codes[0];
@@ -104,13 +93,6 @@
                     LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE,
                     LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE);
             return true;
-        } else if (hasOneDigitAlternate(key)) {
-            mKeyCodes[0] = primaryCode = key.popupCharacters.charAt(0);
-            // when there is only one alternate character, send it as key action.
-            getOnKeyboardActionListener().onKey(primaryCode, mKeyCodes,
-                    LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE,
-                    LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE);
-            return true;
         } else {
             return super.onLongPress(key);
         }
