diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 0299df446f3951e3536623244d46dc95da51a0a2..f5875ca4a529b5bc206c570981257f9e6346f3d6 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1411,7 +1411,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             return;
         }
 
-        final boolean deleteChar = !mHasUncommittedTypedChars;
         if (mHasUncommittedTypedChars) {
             final int length = mWordComposer.size();
             if (length > 0) {
@@ -1439,31 +1438,29 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             // If we had uncommitted chars then we know it's not time to revert any auto-correct
             // and that spaceState is NONE.
             return;
-        }
-
-        if (null != mWordSavedForAutoCorrectCancellation) {
-            Utils.Stats.onAutoCorrectionCancellation();
-            cancelAutoCorrect(ic);
-            mWordSavedForAutoCorrectCancellation = null;
-            return;
         } else {
-            mWordSavedForAutoCorrectCancellation = null;
-        }
-
-        if (SPACE_STATE_DOUBLE == spaceState) {
-            if (revertDoubleSpace(ic)) {
-                // No need to reset mSpaceState, it has already be done (that's why we
-                // receive it as a parameter)
+            if (null != mWordSavedForAutoCorrectCancellation) {
+                Utils.Stats.onAutoCorrectionCancellation();
+                cancelAutoCorrect(ic);
+                mWordSavedForAutoCorrectCancellation = null;
                 return;
+            } else {
+                mWordSavedForAutoCorrectCancellation = null;
             }
-        } else if (SPACE_STATE_SWAP_PUNCTUATION == spaceState) {
-            if (revertSwapPunctuation(ic)) {
-                // Likewise
-                return;
+
+            if (SPACE_STATE_DOUBLE == spaceState) {
+                if (revertDoubleSpace(ic)) {
+                    // No need to reset mSpaceState, it has already be done (that's why we
+                    // receive it as a parameter)
+                    return;
+                }
+            } else if (SPACE_STATE_SWAP_PUNCTUATION == spaceState) {
+                if (revertSwapPunctuation(ic)) {
+                    // Likewise
+                    return;
+                }
             }
-        }
 
-        if (deleteChar) {
             if (mSuggestionsView != null && mSuggestionsView.dismissAddToDictionaryHint()) {
                 // Go back to the suggestion mode if the user canceled the
                 // "Touch again to save".