diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 24a10964e46292ecfc195f15b6116479da7d1286..0af08084fff889e2fb33b55ec1437fb3a200f5f7 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -227,7 +227,7 @@ public class Suggest {
                 mWhiteListDictionary.getWhitelistedWord(consideredWord);
 
         final boolean hasAutoCorrection;
-        if (!isCorrectionEnabled) {
+        if (!isCorrectionEnabled || wordComposer.isMostlyCaps() || wordComposer.isResumed()) {
             hasAutoCorrection = false;
         } else if (null != whitelistedWord) {
             hasAutoCorrection = true;
@@ -243,10 +243,6 @@ public class Suggest {
         } else {
             hasAutoCorrection = false;
         }
-        boolean autoCorrectionAvailable = hasAutoCorrection;
-        // Don't auto-correct words with multiple capital letter
-        autoCorrectionAvailable &= !wordComposer.isMostlyCaps();
-        autoCorrectionAvailable &= !wordComposer.isResumed();
 
         if (whitelistedWord != null) {
             suggestionsSet.add(new SuggestedWordInfo(whitelistedWord,
@@ -305,7 +301,7 @@ public class Suggest {
                 // actual word, it says typedWordValid = false, which looks wrong. We should either
                 // rename the attribute or change the value.
                 !isPrediction && !allowsToBeAutoCorrected /* typedWordValid */,
-                !isPrediction && autoCorrectionAvailable /* hasAutoCorrectionCandidate */,
+                !isPrediction && hasAutoCorrection, /* hasAutoCorrectionCandidate */
                 false /* isPunctuationSuggestions */,
                 false /* isObsoleteSuggestions */,
                 isPrediction);