diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index a5bfdeb94a6056856c4616d6b269167dc058dbaf..d696834e9ff308e1e1eac11b3e4d62ed481cfc16 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -42,6 +42,7 @@ import java.util.Locale;
 import java.util.Map;
 
 public class SubtypeSwitcher {
+    // TODO: This should be configurable by resource
     // This flag indicates if we support language switching by swipe on space bar.
     // We may or may not draw the current language on space bar regardless of this flag.
     public static final boolean USE_SPACEBAR_LANGUAGE_SWITCHER = false;
@@ -104,7 +105,8 @@ public class SubtypeSwitcher {
         mSystemLocale = null;
         mInputLocale = null;
         mInputLocaleStr = null;
-        mMode = null;
+        // Mode is initialized to KEYBOARD_MODE, in case that LatinIME can't obtain currentSubtype
+        mMode = KEYBOARD_MODE;
         mAllEnabledSubtypesOfCurrentInputMethod = null;
         // TODO: Voice input should be created here
         mVoiceInput = null;