diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 5e36d97..88174ba 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -260,7 +260,7 @@
         final int inputSize;
         if (!isGesture) {
             inputSize = composer.copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount(
-                    mInputCodePoints, MAX_WORD_LENGTH);
+                    mInputCodePoints);
             if (inputSize < 0) {
                 return null;
             }
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index 1268e5a..d755195 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -129,22 +129,25 @@
      * -1 is returned.
      *
      * @param destination the array of ints.
-     * @param maxSize the size of the array.
      * @return the number of copied code points.
      */
     public int copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount(
-            final int[] destination, final int maxSize) {
-        final int i = mTypedWordCache.length() - 1 - trailingSingleQuotesCount();
-        if (i < 0) {
+            final int[] destination) {
+        // lastIndex is exclusive
+        final int lastIndex = mTypedWordCache.length() - trailingSingleQuotesCount();
+        if (lastIndex <= 0) {
             // The string is empty or contains only single quotes.
             return 0;
         }
-        final int codePointSize = Character.codePointCount(mTypedWordCache, 0, i);
-        if (codePointSize > maxSize) {
+
+        // The following function counts the number of code points in the text range which begins
+        // at index 0 and extends to the character at lastIndex.
+        final int codePointSize = Character.codePointCount(mTypedWordCache, 0, lastIndex);
+        if (codePointSize > destination.length) {
             return -1;
         }
         return StringUtils.copyCodePointsAndReturnCodePointCount(destination, mTypedWordCache, 0,
-                i + 1, true /* downCase */);
+                lastIndex, true /* downCase */);
     }
 
     public boolean isSingleLetter() {
