diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
index 1d01df700d64631889f4391491db30a99ecbe9c6..7bf49440265a65fcdd3743f8893c8282b4522691 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
@@ -68,6 +68,7 @@ public:
     void clear();
 
     void initialize();
+    void loadPlugins(QDeclarativeEngine *engine);
     void parseQmlTypes();
     void parseNonQmlTypes();
     void parseValueTypes();
@@ -112,6 +113,7 @@ void MetaInfoPrivate::initialize()
     QDeclarativeEngine engine;
     Q_UNUSED(engine);
 
+    loadPlugins(&engine);
     parseQmlTypes();
     parseNonQmlTypes();
     parseValueTypes();
@@ -120,7 +122,25 @@ void MetaInfoPrivate::initialize()
     m_isInitialized = true;
 }
 
+void MetaInfoPrivate::loadPlugins(QDeclarativeEngine *engine)
+{
+    // hack to load plugins
+    QDeclarativeComponent pluginComponent(engine);
+
+    QStringList pluginList;
+    pluginList += "import Qt 4.7";
+    pluginList += "import org.webkit 1.0";
+
+    // load maybe useful plugins
+    pluginList += "import Qt.labs.folderlistmodel 1.0";
+    pluginList += "import Qt.labs.gestures 1.0";
+    pluginList += "import Qt.multimedia 4.7";
+    pluginList += "import Qt.labs.particles 1.0";
 
+    QString componentString = QString("%1\n Item {}\n").arg(pluginList.join("\n"));
+
+    pluginComponent.setData(componentString.toLatin1(), QUrl());
+}
 
 void MetaInfoPrivate::parseProperties(NodeMetaInfo &nodeMetaInfo, const QMetaObject *qMetaObject) const
 {
diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
index 3330097b20601cfbab25599237a54df7e0f68f65..a702214dd4538ccfe6ebf671b0a0219c30faac26 100644
--- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
@@ -3606,6 +3606,12 @@ void TestCore::testMetaInfo()
 {
     QScopedPointer<Model> model(Model::create("Qt/Item"));
     QVERIFY(model.data());
+
+    // test whether default type is registered
+    QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Item", 4, 7));
+
+    // test whether types from plugins are loaded
+    QVERIFY(model->metaInfo().hasNodeMetaInfo("org.webkit/WebView", 1, 0));
 }
 
 void TestCore::testMetaInfoSimpleType()