diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index cf78e7d..975664d 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -57,6 +57,8 @@
     private ContactsBinaryDictionary mContactsDict;
     private final ConcurrentHashMap<String, Dictionary> mDictionaries =
             CollectionUtils.newConcurrentHashMap();
+    @UsedForTesting
+    private boolean mIsCurrentlyWaitingForMainDictionary = false;
 
     public static final int MAX_SUGGESTIONS = 18;
 
@@ -98,6 +100,7 @@
 
     public void resetMainDict(final Context context, final Locale locale,
             final SuggestInitializationListener listener) {
+        mIsCurrentlyWaitingForMainDictionary = true;
         mMainDictionary = null;
         if (listener != null) {
             listener.onUpdateMainDictionaryAvailability(hasMainDictionary());
@@ -112,6 +115,7 @@
                 if (listener != null) {
                     listener.onUpdateMainDictionaryAvailability(hasMainDictionary());
                 }
+                mIsCurrentlyWaitingForMainDictionary = false;
             }
         }.start();
     }
@@ -122,6 +126,11 @@
         return null != mMainDictionary && mMainDictionary.isInitialized();
     }
 
+    @UsedForTesting
+    public boolean isCurrentlyWaitingForMainDictionary() {
+        return mIsCurrentlyWaitingForMainDictionary;
+    }
+
     public Dictionary getMainDictionary() {
         return mMainDictionary;
     }
diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
index a01fef2..10d415b 100644
--- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java
+++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
@@ -231,8 +231,8 @@
     }
 
     protected void waitForDictionaryToBeLoaded() {
-        int remainingAttempts = 10;
-        while (remainingAttempts > 0 && !mLatinIME.mSuggest.hasMainDictionary()) {
+        int remainingAttempts = 300;
+        while (remainingAttempts > 0 && mLatinIME.mSuggest.isCurrentlyWaitingForMainDictionary()) {
             try {
                 Thread.sleep(200);
             } catch (InterruptedException e) {
