diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 30da08e..cb1ec8f 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -390,7 +390,7 @@
         int dataTypeForLog = dataType;
         final int prefMaxSuggestions = MAX_SUGGESTIONS;
 
-        final String word = wordInfo.mWord.toString();
+        final CharSequence word = wordInfo.mWord;
         final int score = wordInfo.mScore;
         int pos = 0;
 
@@ -413,7 +413,7 @@
             // Check the last one's score and bail
             if (suggestions.size() >= prefMaxSuggestions
                     && suggestions.get(prefMaxSuggestions - 1).mScore >= score) return true;
-            final int length = word.codePointCount(0, word.length());
+            final int length = Character.codePointCount(word, 0, word.length());
             while (pos < suggestions.size()) {
                 final int curScore = suggestions.get(pos).mScore;
                 if (curScore < score
@@ -429,9 +429,9 @@
 
         final StringBuilder sb = new StringBuilder(getApproxMaxWordLength());
         if (mIsAllUpperCase) {
-            sb.append(word.toUpperCase(mLocale));
+            sb.append(word.toString().toUpperCase(mLocale));
         } else if (mIsFirstCharCapitalized) {
-            sb.append(StringUtils.toTitleCase(word, mLocale));
+            sb.append(StringUtils.toTitleCase(word.toString(), mLocale));
         } else {
             sb.append(word);
         }
