diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index f88fe9e..9f4976e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -789,7 +789,7 @@
         if (mSuggestionStripView != null) {
             // This will set the punctuation suggestions if next word suggestion is off;
             // otherwise it will clear the suggestion strip.
-            setPunctuationSuggestions();
+            setNeutralSuggestionStrip();
         }
 
         // Sometimes, while rotating, for some reason the framework tells the app we are not
@@ -1561,11 +1561,12 @@
     }
 
     // TODO[IL]: Define a clean interface for this
-    public void setPunctuationSuggestions() {
+    // This will show either an empty suggestion strip (if prediction is enabled) or
+    // punctuation suggestions (if it's disabled).
+    public void setNeutralSuggestionStrip() {
         final SettingsValues currentSettings = mSettings.getCurrent();
         if (currentSettings.mBigramPredictionEnabled) {
             setSuggestedWords(SuggestedWords.EMPTY);
-            setAutoCorrectionIndicator(false);
         } else {
             setSuggestedWords(currentSettings.mSpacingAndPunctuations.mSuggestPuncList);
         }
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index e688d2c..0554cad 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -722,7 +722,7 @@
 
             // Set punctuation right away. onUpdateSelection will fire but tests whether it is
             // already displayed or not, so it's okay.
-            mLatinIME.setPunctuationSuggestions();
+            mLatinIME.setNeutralSuggestionStrip();
         }
 
         keyboardSwitcher.updateShiftState();
@@ -1075,7 +1075,7 @@
         }
 
         if (!mWordComposer.isComposingWord() && !settingsValues.mBigramPredictionEnabled) {
-            mLatinIME.setPunctuationSuggestions();
+            mLatinIME.setNeutralSuggestionStrip();
             return;
         }
 
