Reduce weight of missing-char suggestions.
diff --git a/dictionary/src/dictionary.cpp b/dictionary/src/dictionary.cpp
index 8db5f12..cc711f4 100644
--- a/dictionary/src/dictionary.cpp
+++ b/dictionary/src/dictionary.cpp
@@ -230,8 +230,9 @@
                         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 e9b68fe..a136ee7 100644
--- a/src/com/android/inputmethod/latin/ExpandableDictionary.java
+++ b/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -244,9 +244,9 @@
                             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) {