diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index 3f6756e3934c18c52e00ad1d38c9851f7dc2e0b7..2ddb00315e2136b58e208e25322fd794789e5181 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -274,10 +274,10 @@ public class DictionaryFacilitatorForSuggest {
         mUserDictionary.addWordToUserDictionary(word);
     }
 
-    public String addToUserHistory(final WordComposer wordComposer, final String previousWord,
+    public void addToUserHistory(final WordComposer wordComposer, final String previousWord,
             final String suggestion) {
         if (mUserHistoryDictionary == null) {
-            return null;
+            return;
         }
         final String secondWord;
         if (wordComposer.wasAutoCapitalized() && !wordComposer.isMostlyCaps()) {
@@ -289,12 +289,11 @@ public class DictionaryFacilitatorForSuggest {
         // We don't add words with 0-frequency (assuming they would be profanity etc.).
         final int maxFreq = getMaxFrequency(suggestion);
         if (maxFreq == 0) {
-            return null;
+            return;
         }
         final boolean isValid = maxFreq > 0;
         final int timeStamp = (int)TimeUnit.MILLISECONDS.toSeconds((System.currentTimeMillis()));
         mUserHistoryDictionary.addToDictionary(previousWord, secondWord, isValid, timeStamp);
-        return previousWord;
     }
 
     public void cancelAddingUserHistory(final String previousWord, final String committedWord) {
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 7ed42846e734dfc00332977d86fe757f4bf2ceca..488ce6e7bf80ad6c44e34c61cad490d92e071dab 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -976,19 +976,18 @@ public final class InputLogic {
         mConnection.setSelection(mLastSelectionStart, mLastSelectionEnd);
     }
 
-    private String performAdditionToUserHistoryDictionary(final SettingsValues settingsValues,
-            final String suggestion) {
+    private void performAdditionToUserHistoryDictionary(final SettingsValues settingsValues,
+            final String suggestion, final String prevWord) {
         // If correction is not enabled, we don't add words to the user history dictionary.
         // That's to avoid unintended additions in some sensitive fields, or fields that
         // expect to receive non-words.
-        if (!settingsValues.mCorrectionEnabled) return null;
+        if (!settingsValues.mCorrectionEnabled) return;
 
-        if (TextUtils.isEmpty(suggestion)) return null;
+        if (TextUtils.isEmpty(suggestion)) return;
         final Suggest suggest = mSuggest;
-        if (suggest == null) return null;
+        if (suggest == null) return;
 
-        final String prevWord = mConnection.getNthPreviousWord(settingsValues, 2);
-        return suggest.mDictionaryFacilitator.addToUserHistory(mWordComposer, prevWord, suggestion);
+        suggest.mDictionaryFacilitator.addToUserHistory(mWordComposer, prevWord, suggestion);
     }
 
     public void performUpdateSuggestionStripSync(final SettingsValues settingsValues,
@@ -1610,8 +1609,10 @@ public final class InputLogic {
         final SuggestedWords suggestedWords = mSuggestedWords;
         mConnection.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(mLatinIME, chosenWord,
                 suggestedWords), 1);
+        // TODO: we pass 2 here, but would it be better to move this above and pass 1 instead?
+        final String prevWord = mConnection.getNthPreviousWord(settingsValues, 2);
         // Add the word to the user history dictionary
-        final String prevWord = performAdditionToUserHistoryDictionary(settingsValues, chosenWord);
+        performAdditionToUserHistoryDictionary(settingsValues, chosenWord, prevWord);
         // TODO: figure out here if this is an auto-correct or if the best word is actually
         // what user typed. Note: currently this is done much later in
         // LastComposedWord#didCommitTypedWord by string equality of the remembered