diff --git a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
index 7d2898b7ab450751e041d7a98e5695ba1d3b36fc..ea438922fdf80ca02642c4f995e2b4433a782d4b 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
+++ b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
@@ -74,8 +74,9 @@ namespace latinime {
     }
     const WordAttributes wordAttributes = dictionaryStructurePolicy->getWordAttributesInContext(
             dicNode->getPrevWordIds(), dicNode->getWordId(), multiBigramMap);
-    if (dicNode->hasMultipleWords()
-            && (wordAttributes.isBlacklisted() || wordAttributes.isNotAWord())) {
+    if (wordAttributes.getProbability() == NOT_A_PROBABILITY
+            || (dicNode->hasMultipleWords()
+                    && (wordAttributes.isBlacklisted() || wordAttributes.isNotAWord()))) {
         return static_cast<float>(MAX_VALUE_FOR_WEIGHTING);
     }
     // TODO: This equation to calculate the improbability looks unreasonable.  Investigate this.