diff --git a/src/plugins/cppeditor/cpphighlighter.cpp b/src/plugins/cppeditor/cpphighlighter.cpp
index 4575fa9ec598c6fbaa5e3fd63cf6a2fad9c0f425..25354f44877f600d77b7046032bb5db2e4449237 100644
--- a/src/plugins/cppeditor/cpphighlighter.cpp
+++ b/src/plugins/cppeditor/cpphighlighter.cpp
@@ -359,16 +359,18 @@ void CppHighlighter::highlightLine(const QString &text, int position, int length
 void CppHighlighter::highlightWord(QStringRef word, int position, int length)
 {
     // try to highlight Qt 'identifiers' like QObject and Q_PROPERTY
-    // but don't highlight words like 'Query'
 
-    if (word.length() > 1 && word.at(0) == QLatin1Char('Q')) {
-        for (int i = 1; i < word.length(); ++i) {
-            const QChar &ch = word.at(i);
-            if (! (ch.isUpper() || ch == QLatin1Char('_')))
-                return;
-        }
+    if (word.length() > 2 && word.at(0) == QLatin1Char('Q')) {
+        if (word.at(1) == QLatin1Char('_') // Q_
+            || word.at(1) == QLatin1Char('T') && word.at(2) == QLatin1Char('_')) { // QT_
+            for (int i = 1; i < word.length(); ++i) {
+                const QChar &ch = word.at(i);
+                if (! (ch.isUpper() || ch == QLatin1Char('_')))
+                    return;
+            }
 
-        setFormat(position, length, m_formats[CppTypeFormat]);
+            setFormat(position, length, m_formats[CppTypeFormat]);
+        }
     }
 }