diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index 09d8d76271434124d3ab95da7b94a883720b5726..ce1d4917cb38afe99616aa3d0734fa5d77c93e90 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -668,7 +668,8 @@ static QString find_translation(const QLocale & locale,
     }
 
     // start guessing
-    for (QString localeName : qAsConst(fuzzyLocales)) {
+    for (const QString &fuzzyLocale : qAsConst(fuzzyLocales)) {
+        QStringRef localeName(&fuzzyLocale);
         for (;;) {
             int rightmost = localeName.lastIndexOf(QLatin1Char('_'));
             // no truncations? fail