diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 03397a655adc2754a25737efc5b5269a9932f4f7..06bc4affa87468dbd6d028b7025fc0423085cc56 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -28,7 +28,7 @@
 **************************************************************************/
 
 #include "cppfindreferences.h"
-#include "cppmodelmanager.h"
+#include "cppmodelmanagerinterface.h"
 #include "cpptoolsconstants.h"
 
 #include <texteditor/basetexteditor.h>
@@ -452,7 +452,7 @@ private:
 
 } // end of anonymous namespace
 
-CppFindReferences::CppFindReferences(CppModelManager *modelManager)
+CppFindReferences::CppFindReferences(CppTools::CppModelManagerInterface *modelManager)
     : _modelManager(modelManager),
       _resultWindow(ExtensionSystem::PluginManager::instance()->getObject<Find::SearchResultWindow>())
 {
@@ -614,7 +614,7 @@ void CppFindReferences::findAll_helper(Symbol *symbol)
     _resultWindow->popup(true);
 
     const Snapshot snapshot = _modelManager->snapshot();
-    const QMap<QString, QString> wl = _modelManager->buildWorkingCopyList();
+    const QMap<QString, QString> wl = _modelManager->workingCopy();
 
     Core::ProgressManager *progressManager = Core::ICore::instance()->progressManager();
 
diff --git a/src/plugins/cpptools/cppfindreferences.h b/src/plugins/cpptools/cppfindreferences.h
index 4b4a5a9b04b86db4987c94edfb02c0f0f624219f..cbddf8fb5c3458d448ca13a908173be8d8e11338 100644
--- a/src/plugins/cpptools/cppfindreferences.h
+++ b/src/plugins/cpptools/cppfindreferences.h
@@ -43,16 +43,16 @@ namespace Find {
 } // end of namespace Find
 
 namespace CppTools {
-namespace Internal {
+class CppModelManagerInterface;
 
-class CppModelManager;
+namespace Internal {
 
 class CppFindReferences: public QObject
 {
     Q_OBJECT
 
 public:
-    CppFindReferences(CppModelManager *modelManager);
+    CppFindReferences(CppModelManagerInterface *modelManager);
     virtual ~CppFindReferences();
 
     QList<int> references(CPlusPlus::Symbol *symbol,
@@ -76,7 +76,7 @@ private:
     void findAll_helper(CPlusPlus::Symbol *symbol);
 
 private:
-    QPointer<CppModelManager> _modelManager;
+    QPointer<CppModelManagerInterface> _modelManager;
     Find::SearchResultWindow *_resultWindow;
     QFutureWatcher<Utils::FileSearchResult> m_watcher;
 };
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index d60cd1752ff44cc6bf34b26868a8fe7214dbec4f..f0373e89bf8f1ea216eed2cbaeb7c0d1d9b4c68c 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -793,6 +793,11 @@ QMap<QString, QString> CppModelManager::buildWorkingCopyList()
     return workingCopy;
 }
 
+QMap<QString, QString> CppModelManager::workingCopy() const
+{
+    return const_cast<CppModelManager *>(this)->buildWorkingCopyList();
+}
+
 void CppModelManager::updateSourceFiles(const QStringList &sourceFiles)
 { (void) refreshSourceFiles(sourceFiles); }
 
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index 9aa3a800b2cd9c6c2913424f677efd4c25eb36a3..0e7b0271ce156363e02e56d3bef52534c1f08232 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -73,6 +73,7 @@ public:
     virtual ~CppModelManager();
 
     virtual void updateSourceFiles(const QStringList &sourceFiles);
+    virtual QMap<QString, QString> workingCopy() const;
 
     virtual QList<ProjectInfo> projectInfos() const;
     virtual ProjectInfo projectInfo(ProjectExplorer::Project *project) const;
@@ -92,8 +93,6 @@ public:
     CppEditorSupport *editorSupport(TextEditor::ITextEditor *editor) const
     { return m_editorSupport.value(editor); }
 
-    QMap<QString, QString> buildWorkingCopyList();
-
     void emitDocumentUpdated(CPlusPlus::Document::Ptr doc);
 
     void stopEditorSelectionsUpdate()
@@ -132,6 +131,8 @@ private Q_SLOTS:
     void updateEditorSelections();
 
 private:
+    QMap<QString, QString> buildWorkingCopyList();
+
     QStringList projectFiles()
     {
         ensureUpdated();
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h
index 58b04d4bf57b38d814dbf5513225bc0b4cf28b57..9c6f0fb4432a06958c0bd1b50a4127c8e4c7cc71 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.h
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.h
@@ -86,6 +86,7 @@ public:
     virtual void GC() = 0;
     virtual void updateSourceFiles(const QStringList &sourceFiles) = 0;
 
+    virtual QMap<QString, QString> workingCopy() const = 0;
     virtual CPlusPlus::Snapshot snapshot() const = 0;
 
     virtual QList<ProjectInfo> projectInfos() const = 0;