diff --git a/src/linguist/shared/simtexth.cpp b/src/linguist/shared/simtexth.cpp
index 605bb1517183dad67e8be023a5718f2b4a1e5647..479e7c6ae49a94e45d9090faea9ac77973109c04 100644
--- a/src/linguist/shared/simtexth.cpp
+++ b/src/linguist/shared/simtexth.cpp
@@ -237,6 +237,7 @@ CandidateList similarTextHeuristicCandidates(const Translator *tor,
 {
     QList<int> scores;
     CandidateList candidates;
+    StringSimilarityMatcher matcher(text);
 
     foreach (const TranslatorMessage &mtm, tor->messages()) {
         if (mtm.type() == TranslatorMessage::Unfinished
@@ -244,7 +245,7 @@ CandidateList similarTextHeuristicCandidates(const Translator *tor,
             continue;
 
         QString s = mtm.sourceText();
-        int score = getSimilarityScore(s, text);
+        int score = matcher.getSimilarityScore(s);
 
         if (candidates.size() == maxCandidates && score > scores[maxCandidates - 1] )
             candidates.removeLast();