diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index c20217930c63bb8d571a1bd7b9086f0bb1d1a4f3..17cf49bc86609c76f12c0ebde0216e0bc2c81793 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -322,8 +322,6 @@ struct CanonicalSymbol
 
 };
 
-int numberOfClosedEditors = 0;
-
 /// Check if previous line is a CppStyle Doxygen Comment
 bool isPreviousLineCppStyleComment(const QTextCursor &cursor)
 {
@@ -565,13 +563,6 @@ CPPEditorWidget::~CPPEditorWidget()
     if (m_modelManager)
         m_modelManager->deleteEditorSupport(editor());
 
-    ++numberOfClosedEditors;
-    if (numberOfClosedEditors == 5) {
-        if (m_modelManager)
-            m_modelManager->GC();
-        numberOfClosedEditors = 0;
-    }
-
     delete m_completionSupport;
 }
 
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 4380a212979f2442374a7c9b8cf52e0b6ff9fe0a..6d55de5cdfbd0416c6f763ea200550c78244d17b 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -610,6 +610,8 @@ QList<ProjectPart::Ptr> CppModelManager::projectPart(const QString &fileName) co
 /// \brief Removes the CppEditorSupport for the closed editor.
 void CppModelManager::deleteEditorSupport(TextEditor::BaseTextEditor *textEditor)
 {
+    static short numberOfClosedEditors = 0;
+
     QTC_ASSERT(textEditor, return);
 
     if (!isCppEditor(textEditor))
@@ -624,6 +626,13 @@ void CppModelManager::deleteEditorSupport(TextEditor::BaseTextEditor *textEditor
     }
 
     delete editorSupport;
+
+    ++numberOfClosedEditors;
+    if (numberOfClosedEditors == 5) {
+        numberOfClosedEditors = 0;
+        GC();
+    }
+
 }
 
 bool CppModelManager::isCppEditor(Core::IEditor *editor) const