diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp
index 6527983b6ef5991b75b30343aa581f90aa4da847..5eba9158e72ec4596c9765f2a8f6c9fa738e49af 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.cpp
+++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp
@@ -61,7 +61,8 @@ void CppEditorSupport::setTextEditor(TextEditor::ITextEditor *textEditor)
     if (! _textEditor)
         return;
 
-    connect(_textEditor, SIGNAL(contentsChanged()), this, SLOT(updateDocument()));
+    connect(_textEditor, SIGNAL(contentsChanged()), this, SIGNAL(contentsChanged()));
+    connect(this, SIGNAL(contentsChanged()), this, SLOT(updateDocument()));
     updateDocument();
 }
 
@@ -106,3 +107,5 @@ void CppEditorSupport::updateDocumentNow()
     }
 }
 
+
+
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.h b/src/plugins/cpptools/cpptoolseditorsupport.h
index e95a1962bdb978b594596e0ccaf9add0c8609911..ef91da43e0eb2be975afab5917c39103dc521045 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.h
+++ b/src/plugins/cpptools/cpptoolseditorsupport.h
@@ -63,6 +63,9 @@ public:
 
     QString contents();
 
+Q_SIGNALS:
+    void contentsChanged();
+
 private Q_SLOTS:
     void updateDocument();
     void updateDocumentNow();