diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index da4a114335f46ced8b1b40843d733eb7faeff3eb..02b9666253c79e66022e25e1ccfcdc12374d5219 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1712,7 +1712,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
         // getSuggestedWords handles gracefully a null value of prevWord
         final SuggestedWords suggestedWords = mSuggest.getSuggestedWords(mWordComposer,
                 prevWord, mKeyboardSwitcher.getKeyboard().getProximityInfo(),
-                mCurrentSettings.mCorrectionMode);
+                mCurrentSettings.isCorrectionOn());
 
         // 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
diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index d4317de356f9d66c381160d316285ca97ed89efd..53f2dfcdb0e77d33f9370e4510b890bb162815ba 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -207,9 +207,11 @@ public class SettingsValues {
     }
 
     private int createCorrectionMode() {
-        final boolean shouldAutoCorrect = mAutoCorrectEnabled
-                && !mInputAttributes.mInputTypeNoAutoCorrect;
-        return shouldAutoCorrect ? Suggest.CORRECTION_FULL : Suggest.CORRECTION_NONE;
+        if (mAutoCorrectEnabled && !mInputAttributes.mInputTypeNoAutoCorrect) {
+            return Suggest.CORRECTION_FULL;
+        } else {
+            return Suggest.CORRECTION_NONE;
+        }
     }
 
     private int createSuggestionVisibility(final Resources res) {
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index eb854910df4fa657a202ad1f0ca1960ca1a930d4..f10ebe04776fae3d7dda88bec6ffa6b120d8a72a 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -249,10 +249,18 @@ public class Suggest implements Dictionary.WordCallback {
                 true /* isPrediction */);
     }
 
-    // TODO: cleanup dictionaries looking up and suggestions building with SuggestedWords.Builder
+    // Wrapper for test compatibility. TODO: remove this method
     public SuggestedWords getSuggestedWords(
             final WordComposer wordComposer, CharSequence prevWordForBigram,
             final ProximityInfo proximityInfo, final int correctionMode) {
+        return getSuggestedWords(wordComposer, prevWordForBigram, proximityInfo,
+                Suggest.CORRECTION_FULL == correctionMode);
+    }
+
+    // TODO: cleanup dictionaries looking up and suggestions building with SuggestedWords.Builder
+    public SuggestedWords getSuggestedWords(
+            final WordComposer wordComposer, CharSequence prevWordForBigram,
+            final ProximityInfo proximityInfo, final boolean isCorrectionEnabled) {
         LatinImeLogger.onStartSuggestion(prevWordForBigram);
         mIsFirstCharCapitalized = wordComposer.isFirstCharCapitalized();
         mIsAllUpperCase = wordComposer.isAllUpperCase();
@@ -267,7 +275,7 @@ public class Suggest implements Dictionary.WordCallback {
         LatinImeLogger.onAddSuggestedWord(typedWord, Suggest.DIC_USER_TYPED, Dictionary.UNIGRAM);
         mConsideredWord = consideredWord;
 
-        if (wordComposer.size() <= 1 && (correctionMode == CORRECTION_FULL)) {
+        if (wordComposer.size() <= 1 && isCorrectionEnabled) {
             // At first character typed, search only the bigrams
             mBigramSuggestions = new ArrayList<SuggestedWordInfo>(PREF_MAX_BIGRAMS);
 
@@ -324,7 +332,7 @@ public class Suggest implements Dictionary.WordCallback {
                 mIsFirstCharCapitalized, mWhiteListDictionary.getWhitelistedWord(consideredWord));
 
         final boolean hasAutoCorrection;
-        if (CORRECTION_FULL == correctionMode) {
+        if (isCorrectionEnabled) {
             final CharSequence autoCorrection =
                     AutoCorrection.computeAutoCorrectionWord(mUnigramDictionaries, wordComposer,
                             mSuggestions, consideredWord, mAutoCorrectionThreshold,
@@ -374,7 +382,7 @@ public class Suggest implements Dictionary.WordCallback {
                 && hasMainDictionary();
 
         boolean autoCorrectionAvailable = hasAutoCorrection;
-        if (correctionMode == CORRECTION_FULL) {
+        if (isCorrectionEnabled) {
             autoCorrectionAvailable |= !allowsToBeAutoCorrected;
         }
         // Don't auto-correct words with multiple capital letter