diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index 5fa9b8fc435c2f8dc1957304388a9cf312f562f1..69cbcb154772d55cb32c13479f24941308b6bf37 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -463,7 +463,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
         mPopupPanelPointerTrackerId = tracker.mPointerId;
 
         final Keyboard keyboard = getKeyboard();
-        mPopupPanel.setShifted(keyboard.isShiftedOrShiftLocked());
+        popupPanel.setShifted(keyboard.isShiftedOrShiftLocked());
         final int pointX = (mConfigShowMiniKeyboardAtTouchedPoint) ? tracker.getLastX()
                 : parentKey.mX + parentKey.mWidth / 2;
         final int pointY = parentKey.mY - keyboard.mVerticalGap;
diff --git a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
index c4428dc60e805a855d511eab87e33492d2f14cff..7ace46cacac1428bbe3ccc990dc34538b8c0a837 100644
--- a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
@@ -197,8 +197,8 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
 
     @Override
     public void setShifted(boolean shifted) {
-        final MiniKeyboard miniKeyboard = (MiniKeyboard)getKeyboard();
-        if (miniKeyboard.setShifted(shifted)) {
+        final Keyboard keyboard = getKeyboard();
+        if (keyboard.setShifted(shifted)) {
             invalidateAllKeys();
         }
     }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
index 4ccaa72d2b78c56ea8f1f31a67558b8820c37102..980115200ce45774f388d64fb81da2ea22678468 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
@@ -64,6 +64,15 @@ public class KeyboardParams {
 
     public int mMostCommonKeyWidth = 0;
 
+    protected void clearKeys() {
+        mKeys.clear();
+        mShiftKeys.clear();
+        mShiftLockKeys.clear();
+        mShiftedIcons.clear();
+        mUnshiftedIcons.clear();
+        clearHistogram();
+    }
+
     public void onAddKey(Key key) {
         mKeys.add(key);
         updateHistogram(key);
@@ -83,6 +92,12 @@ public class KeyboardParams {
     private int mMaxCount = 0;
     private final Map<Integer, Integer> mHistogram = new HashMap<Integer, Integer>();
 
+    private void clearHistogram() {
+        mMostCommonKeyWidth = 0;
+        mMaxCount = 0;
+        mHistogram.clear();
+    }
+
     private void updateHistogram(Key key) {
         final Integer width = key.mWidth + key.mHorizontalGap;
         final int count = (mHistogram.containsKey(width) ? mHistogram.get(width) : 0) + 1;