diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 439f1258f278621741fcc67dbd5c08d19f2fe83e..5098494675ca7b9c1ad4251bed053edb1884fab0 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -2038,7 +2038,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         if (mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM) {
             final CharSequence prevWord = EditingUtils.getThisWord(getCurrentInputConnection(),
                     mSettingsValues.mWordSeparators);
-            builder = mSuggest.getBigramPredictionWordBuilder(prevWord);
+            if (!TextUtils.isEmpty(prevWord)) {
+                builder = mSuggest.getBigramPredictionWordBuilder(prevWord);
+            } else {
+                builder = null;
+            }
         } else {
             builder = null;
         }
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index b8ec5ff9dea8d724895125a412363d3bfd848b56..f3ba1e5a73e3f731f31dc6421b6e64be4ab584b0 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -276,21 +276,17 @@ public class Suggest implements Dictionary.WordCallback {
         Arrays.fill(mBigramScores, 0);
         collectGarbage(mBigramSuggestions, PREF_MAX_BIGRAMS);
 
-        // Note that if prevWordForBigram is empty, we'll always return the same empty
-        // SuggestedWords.Builder
-        if (!TextUtils.isEmpty(prevWordForBigram)) {
-            CharSequence lowerPrevWord = prevWordForBigram.toString().toLowerCase();
-            if (mMainDict != null && mMainDict.isValidWord(lowerPrevWord)) {
-                prevWordForBigram = lowerPrevWord;
-            }
-            for (final Dictionary dictionary : mBigramDictionaries.values()) {
-                dictionary.getBigrams(sEmptyWordComposer, prevWordForBigram, this);
-            }
-            // Nothing entered: return all bigrams for the previous word
-            int insertCount = Math.min(mBigramSuggestions.size(), mPrefMaxSuggestions);
-            for (int i = 0; i < insertCount; ++i) {
-                addBigramToSuggestions(mBigramSuggestions.get(i));
-            }
+        CharSequence lowerPrevWord = prevWordForBigram.toString().toLowerCase();
+        if (mMainDict != null && mMainDict.isValidWord(lowerPrevWord)) {
+            prevWordForBigram = lowerPrevWord;
+        }
+        for (final Dictionary dictionary : mBigramDictionaries.values()) {
+            dictionary.getBigrams(sEmptyWordComposer, prevWordForBigram, this);
+        }
+        // Nothing entered: return all bigrams for the previous word
+        int insertCount = Math.min(mBigramSuggestions.size(), mPrefMaxSuggestions);
+        for (int i = 0; i < insertCount; ++i) {
+            addBigramToSuggestions(mBigramSuggestions.get(i));
         }
 
         StringUtils.removeDupes(mSuggestions);