diff --git a/src/plugins/coreplugin/editormanager/stackededitorgroup.cpp b/src/plugins/coreplugin/editormanager/stackededitorgroup.cpp
index 08e63b2773e0f7418e90208f451868539eb8fe4c..cc759c6c7ff8a3a49bf1ef8d1635786094666bdb 100644
--- a/src/plugins/coreplugin/editormanager/stackededitorgroup.cpp
+++ b/src/plugins/coreplugin/editormanager/stackededitorgroup.cpp
@@ -217,7 +217,6 @@ void StackedEditorGroup::addEditor(IEditor *editor)
 
 void StackedEditorGroup::insertEditor(int index, IEditor *editor)
 {
-    EditorGroup::insertEditor(index, editor);
     if (m_container->indexOf(editor->widget()) != -1)
         return;
 
@@ -231,6 +230,9 @@ void StackedEditorGroup::insertEditor(int index, IEditor *editor)
     }
     connect(editor, SIGNAL(changed()), this, SLOT(checkEditorStatus()));
 
+    bool block = m_editorList->blockSignals(true);
+    EditorGroup::insertEditor(index, editor);
+    m_editorList->blockSignals(block);
     emit editorAdded(editor);
 }