diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp
index 85c304cad6319b0a5acb88d13967a4c86579c586..fca1a8402fad9722e00f7e0c724bed7fc981c01c 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.cpp
+++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp
@@ -392,10 +392,14 @@ void CppEditorSupport::startHighlighting()
         m_lastHighlightRevision = revision;
         emit highlighterStarted(&m_highlighter, m_lastHighlightRevision);
     } else {
+        const unsigned revision = currentSource(false).revision;
+        if (m_lastHighlightRevision == revision)
+            return;
+
+        m_lastHighlightRevision = revision;
         static const Document::Ptr dummyDoc;
         static const Snapshot dummySnapshot;
         m_highlighter = m_highlightingSupport->highlightingFuture(dummyDoc, dummySnapshot);
-        m_lastHighlightRevision = editorRevision();
         emit highlighterStarted(&m_highlighter, m_lastHighlightRevision);
     }
 }