diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java
index 044970267543ec9bed497b30a527e0763fe44811..5a9258d51cfc5f97797c1fc57b616cb5f1591816 100644
--- a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java
+++ b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java
@@ -83,4 +83,7 @@ public final class StatsUtils {
 
     public static void onLoadSettings(SettingsValues settingsValues) {
     }
+
+    public static void onInvalidWordIdentification(final String invalidWord) {
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
index 4b8d2a3f948b41a7249c3e2dee36db22ac6d241b..832bfd066ab972338d4274651008cf3b09ee26f9 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
@@ -39,6 +39,7 @@ import com.android.inputmethod.latin.common.LocaleUtils;
 import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
 import com.android.inputmethod.latin.utils.ScriptUtils;
+import com.android.inputmethod.latin.utils.StatsUtils;
 import com.android.inputmethod.latin.utils.SuggestionResults;
 
 import java.util.ArrayList;
@@ -297,6 +298,15 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
                     }
                 }
             }
+            // Handle word not in dictionary.
+            // This is called only once per unique word, so entering multiple
+            // instances of the same word does not result in more than one call
+            // to this method.
+            // Also, upon changing the orientation of the device, this is called
+            // again for every unique invalid word in the text box.
+            if (!isInDict) {
+                StatsUtils.onInvalidWordIdentification(text);
+            }
 
             final int flags =
                     (isInDict ? SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY