diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java
index 7cf64a3bc497b0086fe2578b5978e6f5674ce79b..4d174ddb845058350d00ee44d55e0849428fd415 100644
--- a/java/src/com/android/inputmethod/latin/RichInputConnection.java
+++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java
@@ -685,10 +685,6 @@ public final class RichInputConnection {
                 && !settingsValues.isWordConnector(codePointBeforeCursor)) {
             return true;
         }
-        return isCursorFollowedByWordCharacter(settingsValues);
-    }
-
-    public boolean isCursorFollowedByWordCharacter(final SettingsValues settingsValues) {
         final CharSequence after = getTextAfterCursor(1, 0);
         if (!TextUtils.isEmpty(after) && !settingsValues.isWordSeparator(after.charAt(0))
                 && !settingsValues.isWordConnector(after.charAt(0))) {
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 968129a9628463dfddb638b6aef1b7531a207361..e0adacd0cd04a6b52b73a1de413285f4ebd02e14 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -813,8 +813,7 @@ public final class InputLogic {
                 }
             }
             if (settingsValues.isSuggestionStripVisible()
-                    && settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces
-                    && !mConnection.isCursorFollowedByWordCharacter(settingsValues)) {
+                    && settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) {
                 restartSuggestionsOnWordTouchedByCursor(settingsValues,
                         deleteCountAtStart - mDeleteCount /* offset */,
                         true /* includeResumedWordInSuggestions */, keyboardSwitcher);
@@ -1115,19 +1114,11 @@ public final class InputLogic {
                 keyboardSwitcher.getKeyboard());
         mWordComposer.setCursorPositionWithinWord(
                 typedWord.codePointCount(0, numberOfCharsInWordBeforeCursor));
-        // TODO: Change these lines to setComposingRegion(cursorPosition,
+        // TODO: Change these two lines to setComposingRegion(cursorPosition,
         //         cursorPosition + range.getNumberOfCharsInWordAfterCursor());
-        if (0 != offset) {
-            // Backspace was pressed. We are at the end of a word, and we don't know the cursor
-            // position for sure, so use relative methods.
-            mConnection.deleteSurroundingText(numberOfCharsInWordBeforeCursor, 0);
-            mConnection.setComposingText(typedWord, 1);
-        } else {
-            // This is recorrection. The cursor position is reasonably reliable, and the cursor
-            // may be in the middle of a word so use setComposingRegion.
-            mConnection.setComposingRegion(expectedCursorPosition - numberOfCharsInWordBeforeCursor,
-                expectedCursorPosition + range.getNumberOfCharsInWordAfterCursor());
-        }
+        mConnection.deleteSurroundingText(numberOfCharsInWordBeforeCursor,
+              typedWord.length() - numberOfCharsInWordBeforeCursor);
+        mConnection.setComposingText(typedWord, 1);
         if (suggestions.isEmpty()) {
             // We come here if there weren't any suggestion spans on this word. We will try to
             // compute suggestions for it instead.