diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp
index 41970ae5ae5ed88c8e8ce518d35e4ce6d8fde793..d77c4af23b9dd32d6fab1153c213a468183268b6 100644
--- a/src/plugins/designer/formeditorplugin.cpp
+++ b/src/plugins/designer/formeditorplugin.cpp
@@ -46,6 +46,7 @@
 
 #include <QtCore/QtPlugin>
 #include <QtCore/QDebug>
+#include <QtCore/QProcess>
 
 #ifdef CPP_ENABLED
 #    include <QtGui/QAction>
@@ -100,7 +101,19 @@ bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error)
     m_factory = new FormEditorFactory;
     addObject(m_factory);
 
-    FormEditorW::ensureInitStage(FormEditorW::RegisterPlugins);
+    if (qgetenv("KDE_SESSION_VERSION") == QByteArray("4")) {
+        // KDE 4, possibly dangerous...
+        // KDE 4.2.0 had a nasty bug, which resulted in the File/Open Dialog crashing
+        // so check for that an fully load the plugins
+        QProcess proc;
+        proc.start("kde4-config", QStringList() << "--version");
+        proc.waitForFinished();
+        QString output = proc.readAll();
+        if (output.contains("KDE: 4.2.0"))
+            FormEditorW::ensureInitStage(FormEditorW::FullyInitialized);
+    } else {
+        FormEditorW::ensureInitStage(FormEditorW::RegisterPlugins);
+    }
 
     error->clear();
     return true;