diff --git a/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
index 6c9d1c250689e75a7e3aeb1abd18248b8eb2bbe7..683ee4f5c17d6689b41338dce46eacf839ef1997 100644
--- a/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
@@ -182,6 +182,10 @@ public class UserHistoryDictionary extends ExpandableDictionary {
      * The second word may not be null (a NullPointerException would be thrown).
      */
     public int addToUserHistory(final String word1, String word2, boolean isValid) {
+        if (word2.length() >= BinaryDictionary.MAX_WORD_LENGTH ||
+                (word1 != null && word1.length() >= BinaryDictionary.MAX_WORD_LENGTH)) {
+            return -1;
+        }
         if (mBigramListLock.tryLock()) {
             try {
                 super.addWord(