diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp
index 516795f27fff1a5fa84bce8c914b2796e4f61b20..6057002e2b3fd66612bd30de76f52aec51365507 100644
--- a/src/plugins/designer/formwindoweditor.cpp
+++ b/src/plugins/designer/formwindoweditor.cpp
@@ -88,7 +88,6 @@ FormWindowEditor::FormWindowEditor(Internal::DesignerXmlEditor *editor,
     // Force update of open editors model.
     connect(&d->m_file, SIGNAL(saved()), this, SIGNAL(changed()));
     connect(&d->m_file, SIGNAL(changed()), this, SIGNAL(changed()));
-    connect(this, SIGNAL(changed()), this, SLOT(configureXmlEditor()));
 }
 
 FormWindowEditor::~FormWindowEditor()
@@ -196,19 +195,12 @@ void FormWindowEditor::syncXmlEditor()
     syncXmlEditor(contents());
 }
 
-void FormWindowEditor::configureXmlEditor() const
-{
-    TextEditor::PlainTextEditorWidget *widget =
-            qobject_cast<TextEditor::PlainTextEditorWidget *>(d->m_textEditor.widget());
-    if (widget)
-        widget->configure(Core::ICore::instance()->mimeDatabase()->findByFile(
-                d->m_file.fileName()));
-}
-
 void FormWindowEditor::syncXmlEditor(const QString &contents)
 {
     d->m_textEditor.editorWidget()->setPlainText(contents);
     d->m_textEditor.editorWidget()->setReadOnly(true);
+    static_cast<TextEditor::PlainTextEditorWidget *>
+            (d->m_textEditor.editorWidget())->configure(file()->mimeType());
 }
 
 Core::IFile *FormWindowEditor::file()
diff --git a/src/plugins/designer/formwindoweditor.h b/src/plugins/designer/formwindoweditor.h
index 3260917e693d07715e05b66e8a6bdc781d95f78f..b348a2ffd6bc78b55905b7b81608860f1c1cb391 100644
--- a/src/plugins/designer/formwindoweditor.h
+++ b/src/plugins/designer/formwindoweditor.h
@@ -97,7 +97,6 @@ public:
 
 public slots:
     void syncXmlEditor();
-    void configureXmlEditor() const;
 
 private slots:
     void slotOpen(QString *errorString, const QString &fileName);
diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp
index ca6008d0e7abd56082c56afe28c805b1e97dc22c..d2925ff0d703af53e7939ae84a4ab013b302c54b 100644
--- a/src/plugins/texteditor/plaintexteditor.cpp
+++ b/src/plugins/texteditor/plaintexteditor.cpp
@@ -154,6 +154,11 @@ void PlainTextEditorWidget::configure()
     configure(mimeType);
 }
 
+void PlainTextEditorWidget::configure(const QString &mimeType)
+{
+    configure(Core::ICore::instance()->mimeDatabase()->findByType(mimeType));
+}
+
 void PlainTextEditorWidget::configure(const Core::MimeType &mimeType)
 {
     Highlighter *highlighter = new Highlighter();
diff --git a/src/plugins/texteditor/plaintexteditor.h b/src/plugins/texteditor/plaintexteditor.h
index 6b003ea080ec7cefde297770e915596175b34558..2fb3185d87dbd1cede04ef7dfcd4d13540ac0870 100644
--- a/src/plugins/texteditor/plaintexteditor.h
+++ b/src/plugins/texteditor/plaintexteditor.h
@@ -68,6 +68,7 @@ class TEXTEDITOR_EXPORT PlainTextEditorWidget : public BaseTextEditorWidget
 public:
     PlainTextEditorWidget(QWidget *parent);
 
+    void configure(const QString& mimeType);
     void configure(const Core::MimeType &mimeType);
     bool isMissingSyntaxDefinition() const;
     bool ignoreMissingSyntaxDefinition() const;