diff --git a/src/plugins/texteditor/generichighlighter/manager.cpp b/src/plugins/texteditor/generichighlighter/manager.cpp
index 571fa4065e6f0956f4a5fb6ae64c75df00c068f3..1ab8ced53091e1cfed821467c005095517344a3b 100644
--- a/src/plugins/texteditor/generichighlighter/manager.cpp
+++ b/src/plugins/texteditor/generichighlighter/manager.cpp
@@ -236,6 +236,8 @@ void Manager::registerMimeTypesFinished()
     if (m_queuedMimeTypeRegistrations > 0) {
         --m_queuedMimeTypeRegistrations;
         registerMimeTypes();
+    } else {
+        emit mimeTypesRegistered();
     }
 }
 
diff --git a/src/plugins/texteditor/generichighlighter/manager.h b/src/plugins/texteditor/generichighlighter/manager.h
index eac24665ed249a5ca4824588ec830bab0c4c63b5..7729efcad7cfe1f4061b5b6e7cfbe9264e22df9e 100644
--- a/src/plugins/texteditor/generichighlighter/manager.h
+++ b/src/plugins/texteditor/generichighlighter/manager.h
@@ -88,6 +88,9 @@ private slots:
     void downloadAvailableDefinitionsListFinished();
     void downloadDefinitionsFinished();
 
+signals:
+    void mimeTypesRegistered();
+
 private:
     Manager();
     Q_DISABLE_COPY(Manager)
diff --git a/src/plugins/texteditor/plaintexteditor.cpp b/src/plugins/texteditor/plaintexteditor.cpp
index 58441bf02b69e20ce86a8b95b05fc5d5ee5a58bd..f4092e34006607910999ca7d6183a7069d9f0401 100644
--- a/src/plugins/texteditor/plaintexteditor.cpp
+++ b/src/plugins/texteditor/plaintexteditor.cpp
@@ -74,7 +74,8 @@ PlainTextEditor::PlainTextEditor(QWidget *parent)
 
     m_commentDefinition.clearCommentStyles();
 
-    connect(file(), SIGNAL(changed()), this, SLOT(fileChanged()));
+    connect(file(), SIGNAL(changed()), this, SLOT(configure()));
+    connect(Manager::instance(), SIGNAL(mimeTypesRegistered()), this, SLOT(configure()));
 }
 
 PlainTextEditor::~PlainTextEditor()
@@ -161,7 +162,7 @@ void PlainTextEditor::setTabSettings(const TextEditor::TabSettings &ts)
     }
 }
 
-void PlainTextEditor::fileChanged()
+void PlainTextEditor::configure()
 {
     configure(Core::ICore::instance()->mimeDatabase()->findByFile(file()->fileName()));
 }
diff --git a/src/plugins/texteditor/plaintexteditor.h b/src/plugins/texteditor/plaintexteditor.h
index fb9436907e5a149e556aad0b23c145c46dd5f5bf..55fb62ca0355cadf59c9cab51fef8fa6c6538fde 100644
--- a/src/plugins/texteditor/plaintexteditor.h
+++ b/src/plugins/texteditor/plaintexteditor.h
@@ -79,7 +79,7 @@ public slots:
     virtual void setTabSettings(const TextEditor::TabSettings &);
 
 private slots:
-    void fileChanged();
+    void configure();
 
 protected:
     virtual BaseTextEditorEditable *createEditableInterface() { return new PlainTextEditorEditable(this); }