diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index 0b6258a7ffefaf3ea180ad105c3205f68f06aeec..331384fa585440c7607d585ab9726547ee69f676 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -217,9 +217,6 @@ public class DictionaryFacilitatorForSuggest {
         // Replace Dictionaries.
         final Dictionaries newDictionaries = new Dictionaries(newLocale, newMainDict,
                 newContactsDict,  newUserDictionary, newUserHistoryDict, newPersonalizationDict);
-        if (listener != null) {
-            listener.onUpdateMainDictionaryAvailability(newDictionaries.hasMainDict());
-        }
         final Dictionaries oldDictionaries;
         synchronized (mLock) {
             oldDictionaries = mDictionaries;
@@ -228,6 +225,9 @@ public class DictionaryFacilitatorForSuggest {
                 asyncReloadMainDictionary(context, newLocale, listener);
             }
         }
+        if (listener != null) {
+            listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
+        }
 
         // Clean up old dictionaries.
         oldDictionaries.mDictMap.clear();
@@ -266,7 +266,7 @@ public class DictionaryFacilitatorForSuggest {
                     }
                 }
                 if (listener != null) {
-                    listener.onUpdateMainDictionaryAvailability(mDictionaries.hasMainDict());
+                    listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
                 }
                 latchForWaitingLoadingMainDictionary.countDown();
             }