diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index fa3cf22..fdcf0ad 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -75,6 +75,7 @@
     private final LatinIME mInputMethodService;
     private final LanguageSwitcher mLanguageSwitcher;
 
+    private ModifierKeyState mSymbolKeyState = new ModifierKeyState();
     private KeyboardId mSymbolsId;
     private KeyboardId mSymbolsShiftedId;
 
@@ -382,6 +383,23 @@
         mInputView.setShiftLocked(shiftLocked);
     }
 
+    public void onPressSymbol() {
+        mSymbolKeyState.onPress();
+    }
+
+    public void onReleaseSymbol() {
+        mSymbolKeyState.onRelease();
+    }
+
+    public boolean isSymbolMomentary() {
+        return mSymbolKeyState.isMomentary();
+    }
+
+    public void onOtherKeyPressed() {
+        // TODO: shift key state will be handled too.
+        mSymbolKeyState.onOtherKeyPressed();
+    }
+
     public void toggleShift() {
         if (isAlphabetMode())
             return;
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index b3ac17b..c18174b 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -241,7 +241,6 @@
 
     // Modifier keys state
     private final ModifierKeyState mShiftKeyState = new ModifierKeyState();
-    private final ModifierKeyState mSymbolKeyState = new ModifierKeyState();
 
     private Tutorial mTutorial;
 
@@ -2323,11 +2322,11 @@
                 handleShift();
             }
         } else if (distinctMultiTouch && primaryCode == BaseKeyboard.KEYCODE_MODE_CHANGE) {
-            mSymbolKeyState.onPress();
+            switcher.onPressSymbol();
             changeKeyboardMode();
         } else {
             mShiftKeyState.onOtherKeyPressed();
-            mSymbolKeyState.onOtherKeyPressed();
+            switcher.onOtherKeyPressed();
         }
     }
 
@@ -2352,10 +2351,10 @@
             }
             mShiftKeyState.onRelease();
         } else if (distinctMultiTouch && primaryCode == BaseKeyboard.KEYCODE_MODE_CHANGE) {
-            if (mSymbolKeyState.isMomentary()) {
+            if (switcher.isSymbolMomentary()) {
                 changeKeyboardMode();
             }
-            mSymbolKeyState.onRelease();
+            switcher.onReleaseSymbol();
         }
     }
 
