diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 874d77f19f2401ecfc384b83ea46c3f1c6fbdc28..a83aca0a213847e70c748d10eab6c830f696a360 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1181,7 +1181,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
         mVoiceProxy.handleBackspace();
 
-        boolean deleteChar = false;
+        final boolean deleteChar = !mHasUncommittedTypedChars;
         if (mHasUncommittedTypedChars) {
             final int length = mComposing.length();
             if (length > 0) {
@@ -1202,8 +1202,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
             } else {
                 ic.deleteSurroundingText(1, 0);
             }
-        } else {
-            deleteChar = true;
         }
         mHandler.postUpdateShiftKeyState();
 
@@ -1231,7 +1229,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
                 // different behavior only in the case of picking the first
                 // suggestion (typed word).  It's intentional to have made this
                 // inconsistent with backspacing after selecting other suggestions.
-                revertLastWord(deleteChar);
+                revertLastWord(true /* deleteChar */);
             } else {
                 sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL);
                 if (mDeleteCount > DELETE_ACCELERATE_AT) {
@@ -1799,7 +1797,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         return TextUtils.equals(text, beforeText);
     }
 
-    public void revertLastWord(boolean deleteChar) {
+    private void revertLastWord(boolean deleteChar) {
         final int length = mComposing.length();
         if (!mHasUncommittedTypedChars && length > 0) {
             final InputConnection ic = getCurrentInputConnection();
@@ -1837,7 +1835,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
         }
     }
 
-    public boolean revertDoubleSpace() {
+    private boolean revertDoubleSpace() {
         mHandler.cancelDoubleSpacesTimer();
         final InputConnection ic = getCurrentInputConnection();
         // Here we test whether we indeed have a period and a space before us. This should not
diff --git a/java/src/com/android/inputmethod/latin/TextEntryState.java b/java/src/com/android/inputmethod/latin/TextEntryState.java
index de13f3ae49ac5ef373fee2c4a8a84e39b173ca43..b6e26111472ef7b9e3c1311e76a479a9778f3d2a 100644
--- a/java/src/com/android/inputmethod/latin/TextEntryState.java
+++ b/java/src/com/android/inputmethod/latin/TextEntryState.java
@@ -144,7 +144,7 @@ public class TextEntryState {
             break;
         case UNDO_COMMIT:
             if (isSpace || isSeparator) {
-                setState(ACCEPTED_DEFAULT);
+                setState(START);
             } else {
                 setState(IN_WORD);
             }