diff --git a/java/src/com/android/inputmethod/latin/AutoCorrection.java b/java/src/com/android/inputmethod/latin/AutoCorrection.java
index 8f6c936d276019036fe6ea0139c9c4daf5356cf8..86be4295a6bbe30d236eaa73242b1f4ab37ddab6 100644
--- a/java/src/com/android/inputmethod/latin/AutoCorrection.java
+++ b/java/src/com/android/inputmethod/latin/AutoCorrection.java
@@ -32,12 +32,13 @@ public final class AutoCorrection {
         // Purely static class: can't instantiate.
     }
 
-    public static boolean isValidWord(final ConcurrentHashMap<String, Dictionary> dictionaries,
-            final String word, final boolean ignoreCase) {
+    public static boolean isValidWord(final Suggest suggest, final String word,
+            final boolean ignoreCase) {
         if (TextUtils.isEmpty(word)) {
             return false;
         }
-        final String lowerCasedWord = word.toLowerCase();
+        final ConcurrentHashMap<String, Dictionary> dictionaries = suggest.getUnigramDictionaries();
+        final String lowerCasedWord = word.toLowerCase(suggest.mLocale);
         for (final String key : dictionaries.keySet()) {
             final Dictionary dictionary = dictionaries.get(key);
             // It's unclear how realistically 'dictionary' can be null, but the monkey is somehow
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 6bf9f3ab5894d556318438ce1e72d27caea192c6..592db35dded0cd4a16d7f1f5666ba3ad449bb250 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -2371,7 +2371,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
         final boolean showingAddToDictionaryHint =
                 SuggestedWordInfo.KIND_TYPED == suggestionInfo.mKind && mSuggest != null
                 // If the suggestion is not in the dictionary, the hint should be shown.
-                && !AutoCorrection.isValidWord(mSuggest.getUnigramDictionaries(), suggestion, true);
+                && !AutoCorrection.isValidWord(mSuggest, suggestion, true);
 
         if (mSettings.isInternal()) {
             Stats.onSeparator((char)Constants.CODE_SPACE,
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 1ad040dd33d0fb7935568fef3147d6ac7ea27498..5d580f29b5da7cb36511a79b529590478cc1a7f0 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -229,7 +229,7 @@ public final class Suggest {
         // or if it's a 2+ characters non-word (i.e. it's not in the dictionary).
         final boolean allowsToBeAutoCorrected = (null != whitelistedWord
                 && !whitelistedWord.equals(consideredWord))
-                || (consideredWord.length() > 1 && !AutoCorrection.isValidWord(mDictionaries,
+                || (consideredWord.length() > 1 && !AutoCorrection.isValidWord(this,
                         consideredWord, wordComposer.isFirstCharCapitalized()));
 
         final boolean hasAutoCorrection;