diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index 7847738e0d0e9b7a8f2863f557d5bc08c39a2104..3c1015926e3883bfd00560d53e84f3374a6e42ac 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -269,6 +269,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
     }
 
     private void runGCAfterAllPrioritizedTasksIfRequiredLocked(final boolean mindsBlockByGC) {
+        if (mBinaryDictionary == null) {
+            return;
+        }
         // needsToRunGC() have to be called with lock.
         if (mBinaryDictionary.needsToRunGC(mindsBlockByGC)) {
             if (setProcessingLargeTaskIfNot()) {
@@ -357,6 +360,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
             public void run() {
                 final boolean locked = setProcessingLargeTaskIfNot();
                 try {
+                    if (mBinaryDictionary == null) {
+                        return;
+                    }
                     mBinaryDictionary.addMultipleDictionaryEntries(
                             languageModelParams.toArray(
                                     new LanguageModelParam[languageModelParams.size()]));
@@ -496,6 +502,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
     }
 
     private void flushDictionaryLocked() {
+        if (mBinaryDictionary == null) {
+            return;
+        }
         if (mBinaryDictionary.needsToRunGC(false /* mindsBlockByGC */)) {
             mBinaryDictionary.flushWithGC();
         } else {
diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
index acd16a9e44858ea3db619872c11e33592f2ac2d5..5ce977d5e5df035065ec3c9b0160f16226670357 100644
--- a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
+++ b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
@@ -110,6 +110,9 @@ public final class LanguageModelParam {
             final LanguageModelParam languageModelParam =
                     detectWhetherVaildWordOrNotAndGetLanguageModelParam(
                             prevWord, tempWord, timestamp, dictionaryFacilitator);
+            if (languageModelParam == null) {
+                continue;
+            }
             languageModelParams.add(languageModelParam);
             prevWord = languageModelParam.mTargetWord;
         }
@@ -120,6 +123,9 @@ public final class LanguageModelParam {
             final String prevWord, final String targetWord, final int timestamp,
             final DictionaryFacilitatorForSuggest dictionaryFacilitator) {
         final Locale locale = dictionaryFacilitator.getLocale();
+        if (locale == null) {
+            return null;
+        }
         if (!dictionaryFacilitator.isValidWord(targetWord, true /* ignoreCase */)) {
             // OOV word.
             return createAndGetLanguageModelParamOfWord(prevWord, targetWord, timestamp,