diff --git a/dictionary/src/dictionary.cpp b/dictionary/src/dictionary.cpp
index 8db5f12e73f2cad9676af903dadd007a44d9ee68..cc711f419813c4640b1aa609501896465b36e78e 100644
--- a/dictionary/src/dictionary.cpp
+++ b/dictionary/src/dictionary.cpp
@@ -230,8 +230,9 @@ Dictionary::getWordsRec(int pos, int depth, int maxDepth, bool completion, int s
                         if (terminal) {
                             if (//INCLUDE_TYPED_WORD_IF_VALID ||
                                 !sameAsTyped(mWord, depth + 1)) {
-                                addWord(mWord, depth + 1,
-                                    (freq * snr * addedWeight * mFullWordMultiplier));
+                                int finalFreq = freq * snr * addedWeight;
+                                if (mSkipPos < 0) finalFreq *= mFullWordMultiplier;
+                                addWord(mWord, depth + 1, finalFreq);
                             }
                         }
                         if (childrenAddress != 0) {
diff --git a/src/com/android/inputmethod/latin/ExpandableDictionary.java b/src/com/android/inputmethod/latin/ExpandableDictionary.java
index e9b68fe048c352716ab346594bdb3f3e16394876..a136ee7f42ed8724ae346b9fa6797bbed8459e5f 100644
--- a/src/com/android/inputmethod/latin/ExpandableDictionary.java
+++ b/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -244,9 +244,9 @@ public class ExpandableDictionary extends Dictionary {
                             if (terminal) {
                                 if (INCLUDE_TYPED_WORD_IF_VALID 
                                         || !same(word, depth + 1, codes.getTypedWord())) {
-                                    callback.addWord(word, 0, depth + 1,
-                                        (int) (freq * snr * addedAttenuation 
-                                                * FULL_WORD_FREQ_MULTIPLIER));
+                                    int finalFreq = freq * snr * addedAttenuation;
+                                    if (skipPos < 0) finalFreq *= FULL_WORD_FREQ_MULTIPLIER;
+                                    callback.addWord(word, 0, depth + 1, finalFreq);
                                 }
                             }
                             if (children != null) {