diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 8ea868d..971b68e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -524,7 +524,8 @@
         }
         if (currentSettingsValues.mUsePersonalizedDicts) {
             if (mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypes()) {
-                PersonalizationDictionarySessionRegistrar.init(this);
+                PersonalizationDictionarySessionRegistrar.init(this,
+                        mInputLogic.mSuggest.mDictionaryFacilitator);
             } else {
                 PersonalizationDictionarySessionRegistrar.close(this);
             }
@@ -568,6 +569,8 @@
                 new DictionaryFacilitatorForSuggest(this /* context */, subtypeLocale,
                         settingsValues, this /* DictionaryInitializationListener */,
                         oldDictionaryFacilitator);
+        PersonalizationDictionarySessionRegistrar.onConfigurationChanged(
+                this, getResources().getConfiguration(), dictionaryFacilitator);
         final Suggest newSuggest = new Suggest(subtypeLocale, dictionaryFacilitator);
         if (settingsValues.mCorrectionEnabled) {
             newSuggest.setAutoCorrectionThreshold(settingsValues.mAutoCorrectionThreshold);
@@ -619,7 +622,8 @@
                 mOptionsDialog.dismiss();
             }
         }
-        PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf);
+        PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf,
+                mInputLogic.mSuggest.mDictionaryFacilitator);
         super.onConfigurationChanged(conf);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
index 9a897a5..d6c0dc0 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionarySessionRegistrar.java
@@ -19,11 +19,15 @@
 import android.content.Context;
 import android.content.res.Configuration;
 
+import com.android.inputmethod.latin.DictionaryFacilitatorForSuggest;
+
 public class PersonalizationDictionarySessionRegistrar {
-    public static void init(final Context context) {
+    public static void init(final Context context,
+            final DictionaryFacilitatorForSuggest dictionaryFacilitator) {
     }
 
-    public static void onConfigurationChanged(final Context context, final Configuration conf) {
+    public static void onConfigurationChanged(final Context context, final Configuration conf,
+            final DictionaryFacilitatorForSuggest dictionaryFacilitator) {
     }
 
     public static void onUpdateData(final Context context, final String type) {
