diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 2b31c7bebe08d9a7fead675abbb2ec8e47692b7f..a4c50fc659f5644e65b4a45550f731374bfd002f 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -534,8 +534,8 @@ CPPEditorWidget::CPPEditorWidget(QWidget *parent)
                 this, SLOT(onDocumentUpdated()));
         connect(editorSupport, SIGNAL(semanticInfoUpdated(CppTools::SemanticInfo)),
                 this, SLOT(updateSemanticInfo(CppTools::SemanticInfo)));
-        connect(editorSupport, SIGNAL(highlighterStarted(QFuture<TextEditor::HighlightingResult>, unsigned)),
-                this, SLOT(highlighterStarted(QFuture<TextEditor::HighlightingResult>, unsigned)));
+        connect(editorSupport, SIGNAL(highlighterStarted(QFuture<TextEditor::HighlightingResult> *, unsigned)),
+                this, SLOT(highlighterStarted(QFuture<TextEditor::HighlightingResult> *, unsigned)));
 
         m_completionSupport = m_modelManager->completionSupport(editor());
     }
@@ -1978,10 +1978,10 @@ void CPPEditorWidget::semanticRehighlight(bool force)
     m_modelManager->cppEditorSupport(editor())->recalculateSemanticInfoDetached(force);
 }
 
-void CPPEditorWidget::highlighterStarted(QFuture<TextEditor::HighlightingResult> highlighter,
+void CPPEditorWidget::highlighterStarted(QFuture<TextEditor::HighlightingResult> *highlighter,
                                          unsigned revision)
 {
-    m_highlighter = highlighter;
+    m_highlighter = *highlighter;
     m_highlightRevision = revision;
     m_highlightWatcher.setFuture(m_highlighter);
 }
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index 679bcb9c55ddafa2f32271a55af7ccd561bd8c2b..ae7506cb66f056291a824ac81f314549d7ee6d4b 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -141,7 +141,7 @@ public Q_SLOTS:
     void findUsages();
     void renameUsagesNow(const QString &replacement = QString());
     void semanticRehighlight(bool force = false);
-    void highlighterStarted(QFuture<TextEditor::HighlightingResult> highlighter, unsigned revision);
+    void highlighterStarted(QFuture<TextEditor::HighlightingResult> *highlighter, unsigned revision);
 
 protected:
     bool event(QEvent *e);
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp
index bc2e91b56c692bfc94e99f6d383233ac2199fefd..f9e37b519010237890963f46d40267cb42241d86 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.cpp
+++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp
@@ -290,13 +290,13 @@ void CppEditorSupport::startHighlighting()
 
         m_highlighter = m_highlightingSupport->highlightingFuture(doc, snapshot);
         m_lastHighlightRevision = revision;
-        emit highlighterStarted(m_highlighter, m_lastHighlightRevision);
+        emit highlighterStarted(&m_highlighter, m_lastHighlightRevision);
     } else {
         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);
+        emit highlighterStarted(&m_highlighter, m_lastHighlightRevision);
     }
 }
 
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.h b/src/plugins/cpptools/cpptoolseditorsupport.h
index c36951c1b388499306f9ad98d76e6f54bb8211da..d7534f33e25be510d2e8f3826d151f0c6a23ac8b 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.h
+++ b/src/plugins/cpptools/cpptoolseditorsupport.h
@@ -111,7 +111,7 @@ signals:
     void documentUpdated();
     void diagnosticsChanged();
     void semanticInfoUpdated(CppTools::SemanticInfo);
-    void highlighterStarted(QFuture<TextEditor::HighlightingResult>, unsigned revision);
+    void highlighterStarted(QFuture<TextEditor::HighlightingResult> *, unsigned revision);
 
 private slots:
     void updateDocument();