diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 2dfde943441ae1854231245c20e0777459f3961f..37a4bf8f68efcbe926c1b1cf723d868a2e27805a 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -205,7 +205,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
         final boolean subtypeChanged = (oldKeyboard == null)
                 || !keyboard.mId.mLocale.equals(oldKeyboard.mId.mLocale);
         final boolean needsToDisplayLanguage = mSubtypeSwitcher.needsToDisplayLanguage(
-                keyboard.mId.mLocale);
+                keyboard.mId.mSubtype);
         keyboardView.startDisplayLanguageOnSpacebar(subtypeChanged, needsToDisplayLanguage,
                 RichInputMethodManager.getInstance().hasMultipleEnabledIMEsOrSubtypes(true));
     }
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 935dd96673ca34d1dc57f54d661aae024fa02e5f..c9a85f99450855c45d7dffcd8de66b4b5389eb31 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -93,7 +93,10 @@ public final class SubtypeSwitcher {
         private int mEnabledSubtypeCount;
         private boolean mIsSystemLanguageSameAsInputLanguage;
 
-        public boolean getValue() {
+        public boolean needsToDisplayLanguage(final InputMethodSubtype subtype) {
+            if (SubtypeLocaleUtils.isNoLanguage(subtype)) {
+                return true;
+            }
             return mEnabledSubtypeCount >= 2 || !mIsSystemLanguageSameAsInputLanguage;
         }
 
@@ -265,14 +268,8 @@ public final class SubtypeSwitcher {
     // Subtype Switching functions //
     //////////////////////////////////
 
-    public boolean needsToDisplayLanguage(final Locale keyboardLocale) {
-        if (keyboardLocale.toString().equals(SubtypeLocaleUtils.NO_LANGUAGE)) {
-            return true;
-        }
-        if (!keyboardLocale.equals(getCurrentSubtypeLocale())) {
-            return false;
-        }
-        return mNeedsToDisplayLanguage.getValue();
+    public boolean needsToDisplayLanguage(final InputMethodSubtype subtype) {
+        return mNeedsToDisplayLanguage.needsToDisplayLanguage(subtype);
     }
 
     public boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes() {