diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 6509094..4400c7e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1823,7 +1823,6 @@
         final SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder(mWordComposer,
                 prevWord, mKeyboardSwitcher.getKeyboard().getProximityInfo(), mCorrectionMode);
 
-        boolean autoCorrectionAvailable = mSuggest.hasAutoCorrection();
         // Here, we want to promote a whitelisted word if exists.
         // TODO: Change this scheme - a boolean is not enough. A whitelisted word may be "valid"
         // but still autocorrected from - in the case the whitelist only capitalizes the word.
@@ -1840,12 +1839,6 @@
                 quotesCount > 0
                         ? typedWord.subSequence(0, typedWord.length() - quotesCount) : typedWord,
                 preferCapitalization());
-        if (mCorrectionMode == Suggest.CORRECTION_FULL
-                || mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM) {
-            autoCorrectionAvailable |= (!allowsToBeAutoCorrected);
-        }
-        // Don't auto-correct words with multiple capital letter
-        autoCorrectionAvailable &= !mWordComposer.isMostlyCaps();
 
         // Basically, we update the suggestion strip only when suggestion count > 1.  However,
         // there is an exception: We update the suggestion strip whenever typed word's length
@@ -1855,6 +1848,13 @@
         // length == 1).
         if (builder.size() > 1 || typedWord.length() == 1 || (!allowsToBeAutoCorrected)
                 || mSuggestionsView.isShowingAddToDictionaryHint()) {
+            boolean autoCorrectionAvailable = mSuggest.hasAutoCorrection();
+            if (mCorrectionMode == Suggest.CORRECTION_FULL
+                    || mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM) {
+                autoCorrectionAvailable |= (!allowsToBeAutoCorrected);
+            }
+            // Don't auto-correct words with multiple capital letter
+            autoCorrectionAvailable &= !mWordComposer.isMostlyCaps();
             builder.setTypedWordValid(!allowsToBeAutoCorrected).setHasMinimalSuggestion(
                     autoCorrectionAvailable);
             if (Suggest.shouldBlockAutoCorrectionBySafetyNet(builder, mSuggest,
