diff --git a/qbs/pluginspec/pluginspec.qbs b/qbs/pluginspec/pluginspec.qbs
index 03057c7b752a5898d4cf290b33cfea05d8aef956..3a6297f7774579817792632dcb72a24ec371da1f 100644
--- a/qbs/pluginspec/pluginspec.qbs
+++ b/qbs/pluginspec/pluginspec.qbs
@@ -29,6 +29,18 @@ Module {
             cmd.ide_version_release = product.moduleProperty("pluginspec", "ide_version_release");
 
             cmd.pluginspecreplacements = product.moduleProperty("pluginspec", "pluginspecreplacements");
+            cmd.plugin_depends = [];
+            var deps = product.dependencies;
+            for (var d in deps) {
+                var depdeps = deps[d].dependencies;
+                for (var dd in depdeps) {
+                    if (depdeps[dd].name == 'pluginspec') {
+                        cmd.plugin_depends.push(deps[d].name);
+                        break;
+                    }
+                }
+            }
+            cmd.plugin_recommends = product.pluginRecommends
 
             cmd.sourceCode = function() {
                 var i;
@@ -42,6 +54,15 @@ Module {
                 vars['IDE_VERSION_MAJOR'] = ide_version_major;
                 vars['IDE_VERSION_MINOR'] = ide_version_minor;
                 vars['IDE_VERSION_RELEASE'] = ide_version_release;
+                var deplist = ["<dependencyList>"];
+                for (i in plugin_depends) {
+                    deplist.push("        <dependency name=\"" + plugin_depends[i] + "\" version=\"" + qtcreator_version + "\"/>");
+                }
+                for (i in plugin_recommends) {
+                    deplist.push("        <dependency name=\"" + plugin_recommends[i] + "\" version=\"" + qtcreator_version + "\" type=\"optional\"/>");
+                }
+                deplist.push("    </dependencyList>");
+                vars['dependencyList'] = deplist.join("\n");
                 for (i in vars) {
                     all = all.replace(new RegExp('\\\$\\\$' + i + '(?!\w)', 'g'), vars[i]);
                 }
diff --git a/src/plugins/QtcPlugin.qbs b/src/plugins/QtcPlugin.qbs
index 139b90794f091cb6805a04eda331e71b53786b1d..0535da287b001f6d22748719af5d397f37bfd246 100644
--- a/src/plugins/QtcPlugin.qbs
+++ b/src/plugins/QtcPlugin.qbs
@@ -6,6 +6,7 @@ Product {
     type: ["dynamiclibrary", "pluginSpec"]
     property string provider: 'QtProject'
     property var pluginspecreplacements
+    property var pluginRecommends: []
     targetName: {
         // see PluginSpecPrivate::loadLibrary()
         if (qbs.debugInformation) {
diff --git a/src/plugins/analyzerbase/AnalyzerBase.pluginspec.in b/src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
index fed5008a89a1d9ade64b3d3f7e4e225e6e18deec..8af44ee37e84fb6d2f6b07ebc3becd41abe9c1c5 100644
--- a/src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
+++ b/src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Code Analyzer</category>
     <description>Code Analyzer Base Plugin</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"RemoteLinux\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/android/Android.pluginspec.in b/src/plugins/android/Android.pluginspec.in
index 0f5ddc6e5a206cccd12fa56b2c8acb323c8ccf05..acd7b6f6c785c8bee5281ff073a3fbd9ea128d02 100644
--- a/src/plugins/android/Android.pluginspec.in
+++ b/src/plugins/android/Android.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <description>Support for deployment to and execution on Android Devices</description>
     <category>Device Support</category>
     <url>http://necessitas.kde.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Debugger\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Qt4ProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in b/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
index 8d00f182a00610eb410ef414f638fa90eff16944..657d0d1ce13a186219968459adb17f4d0bce1279 100644
--- a/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
+++ b/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Build Systems</category>
     <description>Autotools project integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/bazaar/Bazaar.pluginspec.in b/src/plugins/bazaar/Bazaar.pluginspec.in
index 045e42d8adfe4eec4e6bd844f6158fc9d581c723..28f7d0f0592126ada31bf1a9d1f9f1022c654830 100644
--- a/src/plugins/bazaar/Bazaar.pluginspec.in
+++ b/src/plugins/bazaar/Bazaar.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>Bazaar integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"VcsBase\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/bineditor/BinEditor.pluginspec.in b/src/plugins/bineditor/BinEditor.pluginspec.in
index 80622f6099e3dc407fe4ca62409b5aab01233e6f..7af26deb246e5d9999e9093967fb33935ae31bd7 100644
--- a/src/plugins/bineditor/BinEditor.pluginspec.in
+++ b/src/plugins/bineditor/BinEditor.pluginspec.in
@@ -13,8 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Binary editor component.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/bookmarks/Bookmarks.pluginspec.in b/src/plugins/bookmarks/Bookmarks.pluginspec.in
index 099c7635a5e0ae3dd7220136dbe171baafbb03be..6c659ed1846aed7f8787e7c6b2306127a579ee66 100644
--- a/src/plugins/bookmarks/Bookmarks.pluginspec.in
+++ b/src/plugins/bookmarks/Bookmarks.pluginspec.in
@@ -13,9 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Bookmarks in text editors.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/classview/ClassView.pluginspec.in b/src/plugins/classview/ClassView.pluginspec.in
index c7ac0de4206b70a0a5b79fadfe7283067e59cf2d..3adf67fcaeae1432cbd1524ea0f6980e7c8697da 100644
--- a/src/plugins/classview/ClassView.pluginspec.in
+++ b/src/plugins/classview/ClassView.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>C++</category>
     <description>Class View component.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/clearcase/ClearCase.pluginspec.in b/src/plugins/clearcase/ClearCase.pluginspec.in
index f85625da1df0a368fa5dfdd9efe92832f60df963..13558fa3da420c9ae40e77620e2d661c096febc3 100644
--- a/src/plugins/clearcase/ClearCase.pluginspec.in
+++ b/src/plugins/clearcase/ClearCase.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>ClearCase integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"VcsBase\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in b/src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
index 8672e431b9063dd69e0197b8e4f3647b811bf157..e51e6eebdb6b6b2755b9c89b00d80ebd17b79784 100644
--- a/src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
+++ b/src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
@@ -13,11 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Build Systems</category>
     <description>CMake support</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Designer\" version=\"$$QTCREATOR_VERSION\" type=\"optional\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
index 9fdfdf9df1b8b2c643f737d16f4c88ad9a9cb45c..5006c3f7eea2423ea15db7f855894c348161d887 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
@@ -14,6 +14,10 @@ QtcPlugin {
     Depends { name: "TextEditor" }
     Depends { name: "QtSupport" }
 
+    pluginRecommends: [
+        "Designer"
+    ]
+
     files: [
         "CMakeProject.mimetypes.xml",
         "cmakebuildconfiguration.cpp",
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager_dependencies.pri b/src/plugins/cmakeprojectmanager/cmakeprojectmanager_dependencies.pri
index 002c7509614b0cd0c862120ea8ca7de44e37e4f0..7ebfd23a06a53e86439fdd83341afa4a188c3a18 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager_dependencies.pri
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager_dependencies.pri
@@ -4,3 +4,5 @@ QTC_PLUGIN_DEPENDS += \
     cpptools \
     texteditor \
     qtsupport
+QTC_PLUGIN_RECOMMENDS += \
+    designer
diff --git a/src/plugins/cpaster/CodePaster.pluginspec.in b/src/plugins/cpaster/CodePaster.pluginspec.in
index ab31c0d8362437c6a6c1fb24d3713f6c5cf5ee33..0f0a56c30a294d3554d584eb5b8cbaed447d31ff 100644
--- a/src/plugins/cpaster/CodePaster.pluginspec.in
+++ b/src/plugins/cpaster/CodePaster.pluginspec.in
@@ -12,8 +12,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     </license>
     <description>Codepaster plugin for pushing/fetching diff from server</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/cppeditor/CppEditor.pluginspec.in b/src/plugins/cppeditor/CppEditor.pluginspec.in
index 4a53251b556613e23ed09a417c8881f9366fe12e..8f6e5e10da24a2558bc75231a86258b8c2de8609 100644
--- a/src/plugins/cppeditor/CppEditor.pluginspec.in
+++ b/src/plugins/cppeditor/CppEditor.pluginspec.in
@@ -13,9 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>C++</category>
     <description>C/C++ editor component.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/cpptools/CppTools.pluginspec.in b/src/plugins/cpptools/CppTools.pluginspec.in
index 6107ea515c0dc7f9d97affb15573967e5e396d28..d677db481e99d10cbdd7334d1b7e0c60d834ebcf 100644
--- a/src/plugins/cpptools/CppTools.pluginspec.in
+++ b/src/plugins/cpptools/CppTools.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>C++</category>
     <description>Tools for analyzing C/C++ code.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Locator\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Find\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/cvs/CVS.pluginspec.in b/src/plugins/cvs/CVS.pluginspec.in
index b38aa48bbe13f42f2816f2d20a486b8a0a534966..cf30f50e60d8bacc7a0624f2e6db045eb5bcf31a 100644
--- a/src/plugins/cvs/CVS.pluginspec.in
+++ b/src/plugins/cvs/CVS.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>CVS integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"VcsBase\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/debugger/Debugger.pluginspec.in b/src/plugins/debugger/Debugger.pluginspec.in
index 7b3abf81df989496e34ae3a27ce244702a81bf0b..22d81075696dc00d3cc1cf0bd6ca3656f3450a74 100644
--- a/src/plugins/debugger/Debugger.pluginspec.in
+++ b/src/plugins/debugger/Debugger.pluginspec.in
@@ -13,14 +13,7 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Debugger integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Find\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <!-- Debugger plugin adds items to the editor\'s context menu -->
-        <dependency name=\"CppEditor\" version=\"$$QTCREATOR_VERSION\" type=\"optional\"/>
-    </dependencyList>
+    $$dependencyList
     <argumentList>
         <argument name=\"-debug\" parameter=\"pid\">Attach to local process</argument>
         <argument name=\"-debug\" parameter=\"executable\">Start and debug executable</argument>
diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs
index 91c1e3db3ee8b3a7baf5b0f1b65e22e2d309fe22..ce88d079c30d60400f848d3c22b609c82b110517 100644
--- a/src/plugins/debugger/debugger.qbs
+++ b/src/plugins/debugger/debugger.qbs
@@ -25,6 +25,10 @@ QtcPlugin {
         "../../shared/registryaccess"
     ])
 
+    pluginRecommends: [
+        "CppEditor"
+    ]
+
     Group {
         condition: Defaults.testsEnabled(qbs)
         qbs.install: true
diff --git a/src/plugins/debugger/debugger_dependencies.pri b/src/plugins/debugger/debugger_dependencies.pri
index 1ca1fcf551182764af6a5531126f00505830ac20..369a4fc25250a0c201de776d387458f1e5453948 100644
--- a/src/plugins/debugger/debugger_dependencies.pri
+++ b/src/plugins/debugger/debugger_dependencies.pri
@@ -11,3 +11,5 @@ QTC_PLUGIN_DEPENDS += \
     find \
     projectexplorer \
     texteditor
+QTC_PLUGIN_RECOMMENDS += \
+    cppeditor
diff --git a/src/plugins/designer/Designer.pluginspec.in b/src/plugins/designer/Designer.pluginspec.in
index f1ccc73a3ee45abb4f9678c9681717eb3d4d2b2c..69dc9b93ade849513901ec9e260f11941356f62d 100644
--- a/src/plugins/designer/Designer.pluginspec.in
+++ b/src/plugins/designer/Designer.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Qt Designer integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-<!-- For compiling with CPP support enabled -->
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/diffeditor/DiffEditor.pluginspec.in b/src/plugins/diffeditor/DiffEditor.pluginspec.in
index 0725168ea82759d13e0437bdbf8178ae3c8a6d43..7ca9bb590eb533e5d7c558afb8248053fc80ebe3 100644
--- a/src/plugins/diffeditor/DiffEditor.pluginspec.in
+++ b/src/plugins/diffeditor/DiffEditor.pluginspec.in
@@ -13,8 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Diff editor component.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/fakevim/FakeVim.pluginspec.in b/src/plugins/fakevim/FakeVim.pluginspec.in
index 5064536d03b8e2e1d4c8b43e0f0b9dff8eb7c097..1717e5e680cadf521160bec763819438bfea0a8e 100644
--- a/src/plugins/fakevim/FakeVim.pluginspec.in
+++ b/src/plugins/fakevim/FakeVim.pluginspec.in
@@ -12,8 +12,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     </license>
     <description>VI-style keyboard navigation.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/find/Find.pluginspec.in b/src/plugins/find/Find.pluginspec.in
index 22dbd1872642bbc18b15dea9c25f7cef438c5b10..ddce5487877fbf21496f588b93297894d95646fc 100644
--- a/src/plugins/find/Find.pluginspec.in
+++ b/src/plugins/find/Find.pluginspec.in
@@ -13,7 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Provides the find widget and the hooks for find implementations.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in b/src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
index bd996e376a2309ed090ba84a5934bb232636ae7f..19e72d595df974c8adfb744c0e1358e9b563366c 100644
--- a/src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
+++ b/src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Build Systems</category>
     <description>Generic support</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/git/Git.pluginspec.in b/src/plugins/git/Git.pluginspec.in
index af63290225ec4d86e81ede00216c968b59704e7d..b5a2c03495d6b03345262e9f6bc0f2ab73affa62 100644
--- a/src/plugins/git/Git.pluginspec.in
+++ b/src/plugins/git/Git.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>Git integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"VcsBase\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/glsleditor/GLSLEditor.pluginspec.in b/src/plugins/glsleditor/GLSLEditor.pluginspec.in
index 4aa81f730be6d14b52cc3eca6ba58b68e4dd944a..cb29e65f99c908213fc6a75423a7af4c578cbaa4 100644
--- a/src/plugins/glsleditor/GLSLEditor.pluginspec.in
+++ b/src/plugins/glsleditor/GLSLEditor.pluginspec.in
@@ -13,9 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>GLSL</category>
     <description>Editor for GLSL.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/helloworld/HelloWorld.pluginspec.in b/src/plugins/helloworld/HelloWorld.pluginspec.in
index c57038084272b9bbae6cbf71a20c9e68337e949d..17e14e8481e0f564728371bdf1804819c060d513 100644
--- a/src/plugins/helloworld/HelloWorld.pluginspec.in
+++ b/src/plugins/helloworld/HelloWorld.pluginspec.in
@@ -12,7 +12,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     </license>
     <description>Hello World sample plugin.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/helloworld/helloworld_dependencies.pri b/src/plugins/helloworld/helloworld_dependencies.pri
index 014c78108b2afc3bd539f0aab9769238cfaf74d3..bdf7d508841032f114c718b5c957db826cbe026f 100644
--- a/src/plugins/helloworld/helloworld_dependencies.pri
+++ b/src/plugins/helloworld/helloworld_dependencies.pri
@@ -4,3 +4,6 @@ QTC_LIB_DEPENDS += \
 
 QTC_PLUGIN_DEPENDS += \
     coreplugin
+
+QTC_PLUGIN_RECOMMENDS += \
+    # optional plugin dependencies. nothing here at this time
diff --git a/src/plugins/help/Help.pluginspec.in b/src/plugins/help/Help.pluginspec.in
index 9ba5de03e3a36140c8e28e43df8d54617d1361cc..393f331341eb75471e0e0a65cabccbf54f6389a5 100644
--- a/src/plugins/help/Help.pluginspec.in
+++ b/src/plugins/help/Help.pluginspec.in
@@ -13,9 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Help system.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Find\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Locator\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/imageviewer/ImageViewer.pluginspec.in b/src/plugins/imageviewer/ImageViewer.pluginspec.in
index 3982f95728dcf6579f5bed8e22a734101e98b114..c22fe56a3f4ad57c9c55ad395eb9319cd2477341 100644
--- a/src/plugins/imageviewer/ImageViewer.pluginspec.in
+++ b/src/plugins/imageviewer/ImageViewer.pluginspec.in
@@ -13,7 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Image Viewer component.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/locator/Locator.pluginspec.in b/src/plugins/locator/Locator.pluginspec.in
index 1f9cc498b47208461c341da463f1faa765483463..c9af5b827e485d8f3f8e92457f1c5bd831e1cbdb 100644
--- a/src/plugins/locator/Locator.pluginspec.in
+++ b/src/plugins/locator/Locator.pluginspec.in
@@ -13,7 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Provides the Locator widget and the hooks for Locator filter implementations.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/macros/Macros.pluginspec.in b/src/plugins/macros/Macros.pluginspec.in
index 80e5415b16d6bc257d16467b206d934185b0090c..7ed581c5d7e5727013c6f7659eabfd2bae1f0347 100644
--- a/src/plugins/macros/Macros.pluginspec.in
+++ b/src/plugins/macros/Macros.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Macros in text editors.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Locator\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Find\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/madde/Madde.pluginspec.in b/src/plugins/madde/Madde.pluginspec.in
index f0803a8b957095b1b5e75160822113e9c3b92fba..53485f089fe138fddd8d264bb683d2e488697677 100644
--- a/src/plugins/madde/Madde.pluginspec.in
+++ b/src/plugins/madde/Madde.pluginspec.in
@@ -13,8 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <description>Support for MADDE-based platforms, including Fremantle and MeeGo 1.2 Harmattan.</description>
     <category>Device Support</category>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"RemoteLinux\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Qt4ProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/mercurial/Mercurial.pluginspec.in b/src/plugins/mercurial/Mercurial.pluginspec.in
index 26e1813deab4867e2ff8341ad81c662b12f2d113..3a034c05f151516d271a9f7e876a31c1893e6b9a 100644
--- a/src/plugins/mercurial/Mercurial.pluginspec.in
+++ b/src/plugins/mercurial/Mercurial.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>Mercurial integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"VcsBase\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/perforce/Perforce.pluginspec.in b/src/plugins/perforce/Perforce.pluginspec.in
index f2bb0c619c1f7809b76cdfcbbee3ad4dcc83ce4c..415b1b068d0336be3414c9922fc66eb91b4eb7b4 100644
--- a/src/plugins/perforce/Perforce.pluginspec.in
+++ b/src/plugins/perforce/Perforce.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>Perforce integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"VcsBase\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/projectexplorer/ProjectExplorer.pluginspec.in b/src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
index 39a6a79297b985d76d22649ffa3c724ff7976db7..588fe9865d89006763993c10ba93bba5bbe2f118 100644
--- a/src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
+++ b/src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
@@ -13,12 +13,7 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>ProjectExplorer framework that can be extended with different kind of project types.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Find\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Locator\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
     <argumentList>
         <argument name=\"-customwizard-verbose\">Verbose loading of custom wizards</argument>
         <argument name=\"-lastsession\">Restore the last session</argument>
diff --git a/src/plugins/pythoneditor/PythonEditor.pluginspec.in b/src/plugins/pythoneditor/PythonEditor.pluginspec.in
index a8cc126001f9dfa3cbff760724d763f6ddb75918..0b1f5b065b9ef4872e85803ea0ffe1d32588b54c 100644
--- a/src/plugins/pythoneditor/PythonEditor.pluginspec.in
+++ b/src/plugins/pythoneditor/PythonEditor.pluginspec.in
@@ -13,10 +13,6 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Python</category>
     <description>Editor and file creation wizards for Python. Example plugin for QtCreator API demonstration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
 
diff --git a/src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in b/src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
index d9ef42b049d08a6520a8f171b2e1f764a39d6b0f..e776d3e0f6e4920482c805110276405fa9730663 100644
--- a/src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
+++ b/src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
@@ -13,11 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Build Systems</category>
     <description>QBS support</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlJSTools\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qmldesigner/QmlDesigner.pluginspec.in b/src/plugins/qmldesigner/QmlDesigner.pluginspec.in
index 824823d2601beb46b97a02269a059fd6929d1938..693fd5f81412e374df460a174b16d8ce8d35b9ba 100644
--- a/src/plugins/qmldesigner/QmlDesigner.pluginspec.in
+++ b/src/plugins/qmldesigner/QmlDesigner.pluginspec.in
@@ -19,12 +19,5 @@ will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.</license>
     <category>Qt Quick</category>
     <description>Visual Designer for QML files.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlJSEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Qt4ProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qmljseditor/QmlJSEditor.pluginspec.in b/src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
index 3754577d71dbb976fce31b87e873b424633f24ff..991ba2cdb8bcdbedb6ba6d7fcb6861a966bd7fac 100644
--- a/src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
+++ b/src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Quick</category>
     <description>Editor for QML and JavaScript.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlJSTools\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qmljstools/QmlJSTools.pluginspec.in b/src/plugins/qmljstools/QmlJSTools.pluginspec.in
index 10815ac24266c379abb4da820372b9d54b73174c..668476ff0728f9e770dc082ffa2816011ad4aaf6 100644
--- a/src/plugins/qmljstools/QmlJSTools.pluginspec.in
+++ b/src/plugins/qmljstools/QmlJSTools.pluginspec.in
@@ -13,12 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Quick</category>
     <description>Tools for analyzing Qml/JS code.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Locator\" version=\"$$QTCREATOR_VERSION\"/>
-        <!-- Types and modules exported from C++ will be pulled into the QML code model -->
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\" type=\"optional\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in b/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
index 19fc666230d0ec8f3c7d1e777ba4f63875e7b485..65dc165b7f222847bfdb0bd216c313d003b12a7f 100644
--- a/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
+++ b/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
@@ -13,12 +13,5 @@
     <category>Qt Quick</category>
     <description>Qml Profiler Plugin</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"AnalyzerBase\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlJSTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Qt4ProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"RemoteLinux\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in b/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
index 004d66da4dbe22db92ea9b433e9ef6bce6ae0f16..f53fcb55a678fbeed14bf7f15215b18618a4bd6e 100644
--- a/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
+++ b/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
@@ -13,12 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Quick</category>
     <description>Qt Quick support</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlJSEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlJSTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Debugger\" version=\"$$QTCREATOR_VERSION\" />
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\" />
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qnx/Qnx.pluginspec.in b/src/plugins/qnx/Qnx.pluginspec.in
index aef4606b33d43c19a3e95a372ca13313cbd8c2af..a5b87508801c918e992e8d8daf079cee863c0f17 100644
--- a/src/plugins/qnx/Qnx.pluginspec.in
+++ b/src/plugins/qnx/Qnx.pluginspec.in
@@ -13,9 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <description>Adds support for QNX to Qt Creator</description>
     <category>Device Support</category>
     <url>http://www.rim.com</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Qt4ProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"RemoteLinux\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in b/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in
index 0f993dde8c3acc3974094922adfdbfe5995c9801..74fd5623d63f827a3c26fd7172ddddd72581ea19 100644
--- a/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in
+++ b/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in
@@ -13,13 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Build Systems</category>
     <description>Provides project type for Qt 4 pro files and tools.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QmlJSTools\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Debugger\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Designer\" version=\"$$QTCREATOR_VERSION\" type=\"optional\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.qbs b/src/plugins/qt4projectmanager/qt4projectmanager.qbs
index 3f214bfbdaa8507a4e15f022cc773fc81c43daaa..2e03a379472f6b7d61045c4162553312c2036b8a 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.qbs
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.qbs
@@ -22,6 +22,10 @@ QtcPlugin {
         "../../shared",
     ])
 
+    pluginRecommends: [
+        "Designer"
+    ]
+
     files: [
         "Qt4ProjectManager.mimetypes.xml",
         "addlibrarywizard.cpp",
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
index dcaa491ca8c476bed66e2ef3d65836682e5edea2..b72e6d0181c053d05edf756f9e1d640d76d5a921 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
+++ b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
@@ -7,3 +7,5 @@ QTC_PLUGIN_DEPENDS += \
     cpptools \
     debugger \
     qmljstools
+QTC_PLUGIN_RECOMMENDS += \
+    designer
diff --git a/src/plugins/qtsupport/QtSupport.pluginspec.in b/src/plugins/qtsupport/QtSupport.pluginspec.in
index edce2f8897a3112882bb873fca655ad5ca32a91c..42db1d4a2f5825525e479b50e7111e382edb676b 100644
--- a/src/plugins/qtsupport/QtSupport.pluginspec.in
+++ b/src/plugins/qtsupport/QtSupport.pluginspec.in
@@ -13,7 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Build Systems</category>
     <description>Provides support code for build systems.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/remotelinux/RemoteLinux.pluginspec.in b/src/plugins/remotelinux/RemoteLinux.pluginspec.in
index 6f9bdfe2085739255adcbac43881e30f3ef97bb9..aa084bc08c66293edacd96eb49b3d15937d3c3b1 100644
--- a/src/plugins/remotelinux/RemoteLinux.pluginspec.in
+++ b/src/plugins/remotelinux/RemoteLinux.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <description>Support for deployment to and execution on a remote Linux host.</description>
     <category>Device Support</category>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Debugger\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/resourceeditor/ResourceEditor.pluginspec.in b/src/plugins/resourceeditor/ResourceEditor.pluginspec.in
index f2cb4d42a6a84d1126987a21d609d1cd2d278b90..5a88cc126df8ba1314e15783401ea07e287be2ad 100644
--- a/src/plugins/resourceeditor/ResourceEditor.pluginspec.in
+++ b/src/plugins/resourceeditor/ResourceEditor.pluginspec.in
@@ -13,8 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Editor for qrc files.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Find\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/subversion/Subversion.pluginspec.in b/src/plugins/subversion/Subversion.pluginspec.in
index 95b9f75b89a778238aa9b639d0c84b426cedf726..b9dfeaaeb3ef139561bab6476f9122e0c9883d2c 100644
--- a/src/plugins/subversion/Subversion.pluginspec.in
+++ b/src/plugins/subversion/Subversion.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>Subversion integration.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"VcsBase\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/tasklist/TaskList.pluginspec.in b/src/plugins/tasklist/TaskList.pluginspec.in
index 2a2b3dc608df4488b4aaab013f265e7d7661e558..be61e89a96caa44f8568261eb3e30fef1854144b 100644
--- a/src/plugins/tasklist/TaskList.pluginspec.in
+++ b/src/plugins/tasklist/TaskList.pluginspec.in
@@ -12,8 +12,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     </license>
     <description>Use .tasks-files to populate the Issues view.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-	<dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/texteditor/TextEditor.pluginspec.in b/src/plugins/texteditor/TextEditor.pluginspec.in
index 9be8af834de0413c3ac1e3d05d59463a0390ed7d..3868c8eb467101cda580b24701221c30c94536a1 100644
--- a/src/plugins/texteditor/TextEditor.pluginspec.in
+++ b/src/plugins/texteditor/TextEditor.pluginspec.in
@@ -13,9 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Text editor framework and the implementation of the basic text editor.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Find\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Locator\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/todo/Todo.pluginspec.in b/src/plugins/todo/Todo.pluginspec.in
index 2065207cd67dea66896d157fb59e1cf38f383cf2..c53f32262b5c304c60e41b621cf062ccaa5ef868 100644
--- a/src/plugins/todo/Todo.pluginspec.in
+++ b/src/plugins/todo/Todo.pluginspec.in
@@ -12,10 +12,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
   </license>
   <description>Adds pane that lists all TODO, FIXME, etc. entries in comments.</description>
   <url>http://www.qt-project.org</url>
-  <dependencyList>
-    <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-    <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-  </dependencyList>
+  $$dependencyList
 </plugin>
diff --git a/src/plugins/updateinfo/UpdateInfo.pluginspec.in b/src/plugins/updateinfo/UpdateInfo.pluginspec.in
index a8e846afb84999f57637fe6769216d00af121738..1046fc92ff829bd368f20bf1a285340f84fa896c 100644
--- a/src/plugins/updateinfo/UpdateInfo.pluginspec.in
+++ b/src/plugins/updateinfo/UpdateInfo.pluginspec.in
@@ -13,7 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Displays Update-Infos for Qt Installer Framework-based Updaters.</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/valgrind/Valgrind.pluginspec.in b/src/plugins/valgrind/Valgrind.pluginspec.in
index 3147857da835704c120c3001ff11ce8f9faaa615..5d2ebda21d84abde9e46b437d269b14ab3f6401f 100644
--- a/src/plugins/valgrind/Valgrind.pluginspec.in
+++ b/src/plugins/valgrind/Valgrind.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Code Analyzer</category>
     <description>Valgrind Plugin</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"AnalyzerBase\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"RemoteLinux\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/vcsbase/VcsBase.pluginspec.in b/src/plugins/vcsbase/VcsBase.pluginspec.in
index faf839a468646b6ae5a892c9f52f92693226b6ce..33a440d238408e55c1f2f3c56ee930c2a5da80a4 100644
--- a/src/plugins/vcsbase/VcsBase.pluginspec.in
+++ b/src/plugins/vcsbase/VcsBase.pluginspec.in
@@ -13,10 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Version Control</category>
     <description>Version Control System Base Plugin</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
-        <dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/plugins/welcome/Welcome.pluginspec.in b/src/plugins/welcome/Welcome.pluginspec.in
index eb01a0827ad2530b5e3dd167097bbfbaa4df3fae..cb2a0489aec3d41b264ad1cd1dc37778c78c3adc 100644
--- a/src/plugins/welcome/Welcome.pluginspec.in
+++ b/src/plugins/welcome/Welcome.pluginspec.in
@@ -13,7 +13,5 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
     <category>Qt Creator</category>
     <description>Default Welcome Screen Plugin</description>
     <url>http://www.qt-project.org</url>
-    <dependencyList>
-        <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
-    </dependencyList>
+    $$dependencyList
 </plugin>
diff --git a/src/qtcreatorplugin.pri b/src/qtcreatorplugin.pri
index 4f2c1b00198f3771095eb5fbc81473b169ffc742..ca1c0aa844d56d84d37ac8f99df2d4d2cfaf7fb2 100644
--- a/src/qtcreatorplugin.pri
+++ b/src/qtcreatorplugin.pri
@@ -1,6 +1,19 @@
 include($$replace(_PRO_FILE_PWD_, ([^/]+$), \\1/\\1_dependencies.pri))
 TARGET = $$QTC_PLUGIN_NAME
 
+# for substitution in the .pluginspec
+dependencyList = "<dependencyList>"
+for(dep, QTC_PLUGIN_DEPENDS) {
+    include($$PWD/plugins/$$dep/$${dep}_dependencies.pri)
+    dependencyList += "        <dependency name=\"$$QTC_PLUGIN_NAME\" version=\"$$QTCREATOR_VERSION\"/>"
+}
+for(dep, QTC_PLUGIN_RECOMMENDS) {
+    include($$PWD/plugins/$$dep/$${dep}_dependencies.pri)
+    dependencyList += "        <dependency name=\"$$QTC_PLUGIN_NAME\" version=\"$$QTCREATOR_VERSION\" type=\"optional\"/>"
+}
+dependencyList += "    </dependencyList>"
+dependencyList = $$join(dependencyList, $$escape_expand(\\n))
+
 include(../qtcreator.pri)
 
 # use gui precompiled header for plugins by default