diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 5a5674f8f1f1c0fe0359d73f92560cc6559e00fa..8ea868d51a9796d9bf976dda5328376fa901171d 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -523,7 +523,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
             suggest.close();
         }
         if (currentSettingsValues.mUsePersonalizedDicts) {
-            PersonalizationDictionarySessionRegistrar.init(this);
+            if (mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes()) {
+                PersonalizationDictionarySessionRegistrar.init(this);
+            } else {
+                PersonalizationDictionarySessionRegistrar.close(this);
+            }
         } else {
             PersonalizationHelper.removeAllPersonalizedDictionaries(this);
             PersonalizationDictionarySessionRegistrar.resetAll(this);
@@ -595,7 +599,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
             ResearchLogger.getInstance().onDestroy();
         }
         unregisterReceiver(mDictionaryPackInstallReceiver);
-        PersonalizationDictionarySessionRegistrar.onDestroy(this);
+        PersonalizationDictionarySessionRegistrar.close(this);
         LatinImeLogger.commit();
         LatinImeLogger.onDestroy();
         super.onDestroy();
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index b0ab603574ab28cd700731fb88044a3570bc6575..860575a1f60fa5d88e815c50ea92a7a9c4496523 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -273,6 +273,18 @@ public final class SubtypeSwitcher {
         return mNeedsToDisplayLanguage.getValue();
     }
 
+    public boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypes() {
+        final Locale systemLocale = mResources.getConfiguration().locale;
+        final List<InputMethodSubtype> enabledSubtypesOfThisIme =
+                mRichImm.getMyEnabledInputMethodSubtypeList(true);
+        for (final InputMethodSubtype subtype : enabledSubtypesOfThisIme) {
+            if (!systemLocale.equals(SubtypeLocaleUtils.getSubtypeLocale(subtype))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
     private static InputMethodSubtype sForcedSubtypeForTesting = null;
     @UsedForTesting
     void forceSubtype(final InputMethodSubtype subtype) {
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
index 76965112fe983404342f216534bf75a47fe9cb83..9a897a5828a42f4bf1875388d94065adcf6ca1c4 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
@@ -35,6 +35,6 @@ public class PersonalizationDictionarySessionRegistrar {
     public static void resetAll(final Context context) {
     }
 
-    public static void onDestroy(final Context context) {
+    public static void close(final Context context) {
     }
 }