diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index 50bc2b0a21e53fd9f0e1b0a5f1cb2f4ca34a250d..f31fb134c43e4a48b5f94d9af47cc49d980f940d 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -173,9 +173,7 @@ public final class WordComposer {
         final int keyX = event.mX;
         final int keyY = event.mY;
         final int newIndex = size();
-        mCombinerChain.processEvent(mEvents, event);
-        mEvents.add(event);
-        refreshTypedWordCache();
+        processEvent(event);
         mCursorPositionWithinWord = mCodePointSize;
         if (newIndex < MAX_WORD_LENGTH) {
             mPrimaryKeyCodes[newIndex] = primaryCode >= Constants.CODE_SPACE
@@ -200,13 +198,17 @@ public final class WordComposer {
         mAutoCorrection = null;
     }
 
+    private void processEvent(final Event event) {
+        mCombinerChain.processEvent(mEvents, event);
+        mEvents.add(event);
+        refreshTypedWordCache();
+    }
+
     /**
      * Delete the last composing unit as a result of hitting backspace.
      */
     public void deleteLast(final Event event) {
-        mCombinerChain.processEvent(mEvents, event);
-        mEvents.add(event);
-        refreshTypedWordCache();
+        processEvent(event);
         // We may have deleted the last one.
         if (0 == size()) {
             mIsFirstCharCapitalized = false;