diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp
index ee8bfa5966551f30400a562c69aa9a24d514a4d0..b02f0aca7403ad551b7b90c1bc97cdaa32534266 100644
--- a/src/plugins/designer/formeditorplugin.cpp
+++ b/src/plugins/designer/formeditorplugin.cpp
@@ -31,7 +31,6 @@
 #include "formeditorfactory.h"
 #include "formeditorw.h"
 #include "formwizard.h"
-#include "formeditorstack.h"
 
 #ifdef CPP_ENABLED
 #  include "formclasswizard.h"
@@ -40,35 +39,19 @@
 #endif
 
 #include "designerconstants.h"
-#include "formwindoweditor.h"
-#include "designerxmleditor.h"
-#include "formwindowfile.h"
-
-#include <QDesignerFormWindowInterface>
 
 #include <coreplugin/icore.h>
 #include <coreplugin/mimedatabase.h>
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/uniqueidmanager.h>
 #include <extensionsystem/pluginmanager.h>
-#include <coreplugin/editormanager/ieditor.h>
-#include <coreplugin/editormanager/editormanager.h>
-#include <coreplugin/modemanager.h>
-#include <coreplugin/designmode.h>
-#include <texteditor/basetextdocument.h>
-
-#include <QtCore/QPointer>
-#include <QtCore/QCoreApplication>
-#include <QtCore/QtPlugin>
+
 #include <QtCore/QDebug>
-#include <QtCore/QProcess>
 #include <QtCore/QLibraryInfo>
 #include <QtCore/QTranslator>
-
-#include <QtGui/QTextDocument>
+#include <QtCore/QtPlugin>
 
 #ifdef CPP_ENABLED
-#    include <QtGui/QAction>
 #    include <QtGui/QWizard>
 #    include <QtGui/QMainWindow>
 #endif
@@ -114,13 +97,19 @@ bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error)
         if (qtr->load(trFile, qtTrPath) || qtr->load(trFile, creatorTrPath))
             qApp->installTranslator(qtr);
     }
-
-    FormEditorW::ensureInitStage(FormEditorW::RegisterPlugins);
-
     error->clear();
+    // Delayed loading: Make sure settings pages are there if options
+    // dialog is requested.
+    connect(Core::ICore::instance(), SIGNAL(optionsDialogRequested()),
+            this, SLOT(ensurePluginInitialized()));
     return true;
 }
 
+void FormEditorPlugin::ensurePluginInitialized()
+{
+    FormEditorW::instance()->ensureInitStage(FormEditorW::RegisterPlugins);
+}
+
 void FormEditorPlugin::extensionsInitialized()
 {
     // 4) test and make sure everything works (undo, saving, editors, opening/closing multiple files, dirtiness etc)
diff --git a/src/plugins/designer/formeditorplugin.h b/src/plugins/designer/formeditorplugin.h
index 7ee2afa0802fdfd9e5bf853261bea3093ce9810c..47ce3d3949780bf0aff1cfdd2aace82aa36c8731 100644
--- a/src/plugins/designer/formeditorplugin.h
+++ b/src/plugins/designer/formeditorplugin.h
@@ -57,6 +57,9 @@ public:
     bool initialize(const QStringList &arguments, QString *error_message = 0);
     void extensionsInitialized();
 
+public slots:
+    void ensurePluginInitialized();
+
 private:
 
     void initializeTemplates();