diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 4b33867c04bfdf90e6c1bbdf6f398a09fe6c98e1..b941acf3929488adc16d96169b4268fc2303e36e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1392,7 +1392,12 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
         case Constants.CODE_SHIFT:
             // Note: calling back to the keyboard on Shift key is handled in onPressKey()
             // and onReleaseKey().
-            handleRecapitalize();
+            final Keyboard currentKeyboard = switcher.getKeyboard();
+            if (null != currentKeyboard && currentKeyboard.mId.isAlphabetKeyboard()) {
+                // TODO: Instead of checking for alphabetic keyboard here, separate keycodes for
+                // alphabetic shift and shift while in symbol layout.
+                handleRecapitalize();
+            }
             break;
         case Constants.CODE_SWITCH_ALPHA_SYMBOL:
             // Note: calling back to the keyboard on symbol key is handled in onPressKey()