diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 67c03f626e79938813d5f6cd47889d87f8c1a512..fb9de506253539d81ea0636a0434a4dbe4418e51 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -239,15 +239,19 @@ public class Suggest implements Dictionary.WordCallback {
         if (wordComposer.size() <= 1 && isCorrectionEnabled) {
             // At first character typed, search only the bigrams
             if (!TextUtils.isEmpty(prevWordForBigram)) {
+                final CharSequence lowerPrevWord;
                 if (StringUtils.hasUpperCase(prevWordForBigram)) {
                     // TODO: Must pay attention to locale when changing case.
-                    final CharSequence lowerPrevWord = prevWordForBigram.toString().toLowerCase();
-                    for (final Dictionary dictionary : mBigramDictionaries.values()) {
-                        dictionary.getBigrams(wordComposer, lowerPrevWord, this);
-                    }
+                    lowerPrevWord = prevWordForBigram.toString().toLowerCase();
+                } else {
+                    lowerPrevWord = null;
                 }
-                for (final Dictionary dictionary : mBigramDictionaries.values()) {
+                for (final String key : mBigramDictionaries.keySet()) {
+                    final Dictionary dictionary = mBigramDictionaries.get(key);
                     dictionary.getBigrams(wordComposer, prevWordForBigram, this);
+                    if (null != lowerPrevWord) {
+                        dictionary.getBigrams(wordComposer, lowerPrevWord, this);
+                    }
                 }
             }
         } else if (wordComposer.size() > 1) {