diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index d04930303bfe2d8117717ec5958b219c7d2aa7f5..88a2b839808119e21be3066b3ac49c407c9a8277 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -335,6 +335,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
     }
 
     boolean isAlphabetMode() {
+        if (mCurrentId == null) {
+            return false;
+        }
         int currentMode = mCurrentId.mKeyboardMode;
         for (Integer mode : ALPHABET_MODES) {
             if (currentMode == mode) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 9bd16adb22131d3726b962b95eaa90ab76376b45..0f724f00ad2fabd65a07906c5e618b009e6cda86 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -968,7 +968,7 @@ public class LatinIME extends InputMethodService
 
     public void updateShiftKeyState(EditorInfo attr) {
         InputConnection ic = getCurrentInputConnection();
-        if (attr != null && mKeyboardSwitcher.isAlphabetMode() && ic != null) {
+        if (ic != null && attr != null && mKeyboardSwitcher.isAlphabetMode()) {
             mKeyboardSwitcher.setShifted(mCapsLock || getCursorCapsMode(ic, attr) != 0);
         }
     }