diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 07067d9e5641fb2c602d8c6ca9a9c75f31fe2b8c..d09ac81655bd0323be8e76c695d0d71208c40121 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -679,13 +679,13 @@ CppModelManager::~CppModelManager()
 
 Snapshot CppModelManager::snapshot() const
 {
-    QMutexLocker locker(&m_protectSnapshot);
+    QMutexLocker locker(&m_snapshotMutex);
     return m_snapshot;
 }
 
 Document::Ptr CppModelManager::document(const QString &fileName) const
 {
-    QMutexLocker locker(&m_protectSnapshot);
+    QMutexLocker locker(&m_snapshotMutex);
     return m_snapshot.document(fileName);
 }
 
@@ -694,7 +694,7 @@ Document::Ptr CppModelManager::document(const QString &fileName) const
 /// \returns true if successful, false if the new document is out-dated.
 bool CppModelManager::replaceDocument(Document::Ptr newDoc)
 {
-    QMutexLocker locker(&m_protectSnapshot);
+    QMutexLocker locker(&m_snapshotMutex);
 
     Document::Ptr previous = m_snapshot.document(newDoc->fileName());
     if (previous && (newDoc->revision() != 0 && newDoc->revision() < previous->revision()))
@@ -707,7 +707,7 @@ bool CppModelManager::replaceDocument(Document::Ptr newDoc)
 
 void CppModelManager::ensureUpdated()
 {
-    QMutexLocker locker(&m_mutex);
+    QMutexLocker locker(&m_projectMutex);
     if (! m_dirty)
         return;
 
@@ -899,7 +899,7 @@ void CppModelManager::renameMacroUsages(const CPlusPlus::Macro &macro, const QSt
 
 void CppModelManager::replaceSnapshot(const CPlusPlus::Snapshot &newSnapshot)
 {
-    QMutexLocker snapshotLocker(&m_protectSnapshot);
+    QMutexLocker snapshotLocker(&m_snapshotMutex);
     m_snapshot = newSnapshot;
 }
 
@@ -949,14 +949,14 @@ QFuture<void> CppModelManager::updateSourceFiles(const QStringList &sourceFiles)
 
 QList<CppModelManager::ProjectInfo> CppModelManager::projectInfos() const
 {
-    QMutexLocker locker(&m_mutex);
+    QMutexLocker locker(&m_projectMutex);
 
     return m_projects.values();
 }
 
 CppModelManager::ProjectInfo CppModelManager::projectInfo(ProjectExplorer::Project *project) const
 {
-    QMutexLocker locker(&m_mutex);
+    QMutexLocker locker(&m_projectMutex);
 
     return m_projects.value(project, ProjectInfo(project));
 }
@@ -964,7 +964,7 @@ CppModelManager::ProjectInfo CppModelManager::projectInfo(ProjectExplorer::Proje
 void CppModelManager::updateProjectInfo(const ProjectInfo &pinfo)
 {
     { // only hold the mutex for a limited scope, so the dumping afterwards can aquire it without deadlocking.
-        QMutexLocker locker(&m_mutex);
+        QMutexLocker locker(&m_projectMutex);
 
         if (! pinfo.isValid())
             return;
@@ -1041,14 +1041,14 @@ void CppModelManager::emitDocumentUpdated(Document::Ptr doc)
 
 void CppModelManager::onProjectAdded(ProjectExplorer::Project *)
 {
-    QMutexLocker locker(&m_mutex);
+    QMutexLocker locker(&m_projectMutex);
     m_dirty = true;
 }
 
 void CppModelManager::onAboutToRemoveProject(ProjectExplorer::Project *project)
 {
     do {
-        QMutexLocker locker(&m_mutex);
+        QMutexLocker locker(&m_projectMutex);
         m_dirty = true;
         m_projects.remove(project);
     } while (0);
@@ -1061,7 +1061,7 @@ void CppModelManager::onAboutToUnloadSession()
     if (Core::ProgressManager *pm = Core::ICore::progressManager())
         pm->cancelTasks(QLatin1String(CppTools::Constants::TASK_INDEX));
     do {
-        QMutexLocker locker(&m_mutex);
+        QMutexLocker locker(&m_projectMutex);
         m_projects.clear();
         m_dirty = true;
     } while (0);
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index 5ae585d0d4eff756f849a58bd901b1ede70f1b9e..d347b851e53c0a64f46929078a81772c5cab2c62 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -42,20 +42,13 @@
 
 #include <QHash>
 #include <QMutex>
-#include <QTimer>
-#include <QTextEdit> // for QTextEdit::ExtraSelection
 
 namespace Core { class IEditor; }
 
 namespace TextEditor {
-class ITextEditor;
 class BaseTextEditorWidget;
 } // namespace TextEditor
 
-namespace ProjectExplorer { class ProjectExplorerPlugin; }
-
-namespace CPlusPlus { class ParseManager; }
-
 namespace CppTools {
 
 class CppCompletionSupportFactory;
@@ -64,7 +57,6 @@ class CppHighlightingSupportFactory;
 
 namespace Internal {
 
-class CppPreprocessor;
 class CppFindReferences;
 
 class CPPTOOLS_EXPORT CppModelManager : public CppTools::CppModelManagerInterface
@@ -149,8 +141,6 @@ public:
     }
 
 Q_SIGNALS:
-    void projectPathChanged(const QString &projectPath);
-
     void aboutToRemoveFiles(const QStringList &files);
 
 public Q_SLOTS:
@@ -181,10 +171,17 @@ private:
     static CppModelManager *m_modelManagerInstance;
 
 private:
+    // snapshot
+    mutable QMutex m_snapshotMutex;
     CPlusPlus::Snapshot m_snapshot;
+
     bool m_enableGC;
 
-    // cache
+    // project integration
+    mutable QMutex m_projectMutex;
+    QMap<ProjectExplorer::Project *, ProjectInfo> m_projects;
+    QMap<QString, QList<CppTools::ProjectPart::Ptr> > m_srcToProjectPart;
+    // cached/calculated from the projects and/or their project-parts
     bool m_dirty;
     QStringList m_projectFiles;
     QStringList m_includePaths;
@@ -197,17 +194,9 @@ private:
 
     QSet<AbstractEditorSupport *> m_addtionalEditorSupport;
 
-    // project integration
-    QMap<ProjectExplorer::Project *, ProjectInfo> m_projects;
-
-    mutable QMutex m_mutex;
-    mutable QMutex m_protectSnapshot;
-
     CppFindReferences *m_findReferences;
     bool m_indexerEnabled;
 
-    QMap<QString, QList<CppTools::ProjectPart::Ptr> > m_srcToProjectPart;
-
     CppCompletionAssistProvider *m_completionAssistProvider;
     CppCompletionAssistProvider *m_completionFallback;
     CppHighlightingSupportFactory *m_highlightingFactory;