diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
index a11765282e055af847c9b9ebb8666944d2abcc16..08b93e8f70611279d15c4ca6f163ac72f25e5cac 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
@@ -144,12 +144,13 @@ Qt4BaseTarget *Qt4DesktopTargetFactory::create(ProjectExplorer::Project *parent,
         return 0;
 
     QtVersion *qtVersion = knownVersions.first();
-    bool buildAll = qtVersion->isValid() && (qtVersion->defaultBuildConfig() & QtVersion::BuildAll);
-    QtVersion::QmakeBuildConfigs config = buildAll ? QtVersion::BuildAll : QtVersion::QmakeBuildConfig(0);
+    QtVersion::QmakeBuildConfigs config = qtVersion->defaultBuildConfig();
+    bool buildAll = qtVersion->defaultBuildConfig() & QtVersion::BuildAll;
 
-    QList<BuildConfigurationInfo> infos;
-    infos.append(BuildConfigurationInfo(qtVersion, config | QtVersion::DebugBuild, QString(), QString()));
-    infos.append(BuildConfigurationInfo(qtVersion, config, QString(), QString()));
+    QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), Constants::DESKTOP_TARGET_ID);
+    infos.append(BuildConfigurationInfo(qtVersion, config, QString(), dir));
+    if (buildAll)
+        infos.append(BuildConfigurationInfo(qtVersion, config ^ QtVersion::DebugBuild, QString(), dir));
 
     return create(parent, id, infos);
 }
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
index 71e8f834d856e2c8a706e4c672fee9a56364ddbc..3a9c23e28c404476d8e7d36830d19c2d62db08f3 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
@@ -129,7 +129,7 @@ QList<BuildConfigurationInfo> Qt4SimulatorTargetFactory::availableBuildConfigura
         bool buildAll = config & QtVersion::BuildAll;
         QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), Constants::QT_SIMULATOR_TARGET_ID);
         infos.append(BuildConfigurationInfo(version, config, QString(), dir));
-        if (config)
+        if (buildAll)
             infos.append(BuildConfigurationInfo(version, config ^ QtVersion::DebugBuild, QString(), dir));
     }
     return infos;
@@ -145,12 +145,12 @@ Qt4BaseTarget *Qt4SimulatorTargetFactory::create(ProjectExplorer::Project *paren
         return 0;
 
     QtVersion *qtVersion = knownVersions.first();
-    bool buildAll = qtVersion->isValid() && (qtVersion->defaultBuildConfig() & QtVersion::BuildAll);
-    QtVersion::QmakeBuildConfigs config = buildAll ? QtVersion::BuildAll : QtVersion::QmakeBuildConfig(0);
-
-    QList<BuildConfigurationInfo> infos;
-    infos.append(BuildConfigurationInfo(qtVersion, config | QtVersion::DebugBuild, QString(), QString()));
-    infos.append(BuildConfigurationInfo(qtVersion, config, QString(), QString()));
+    QtVersion::QmakeBuildConfigs config = qtVersion->defaultBuildConfig();
+    bool buildAll = config & QtVersion::BuildAll;
+    QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), Constants::QT_SIMULATOR_TARGET_ID);
+    infos.append(BuildConfigurationInfo(qtVersion, config, QString(), dir));
+    if (buildAll)
+        infos.append(BuildConfigurationInfo(qtVersion, config ^ QtVersion::DebugBuild, QString(), dir));
 
     return create(parent, id, infos);
 }
diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp
index bf3a4bbb43833cabd718ae06b13b0a733231b6ea..18cd32c7931fff22c12baeb3b5f556252975ff46 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp
@@ -178,12 +178,12 @@ Qt4BaseTarget *Qt4MaemoTargetFactory::create(ProjectExplorer::Project *parent, c
         return 0;
 
     QtVersion *qtVersion = knownVersions.first();
-    bool buildAll = qtVersion->isValid() && (qtVersion->defaultBuildConfig() & QtVersion::BuildAll);
-    QtVersion::QmakeBuildConfigs config = buildAll ? QtVersion::BuildAll : QtVersion::QmakeBuildConfig(0);
-
-    QList<BuildConfigurationInfo> infos;
-    infos.append(BuildConfigurationInfo(qtVersion, config | QtVersion::DebugBuild, QString(), QString()));
-    infos.append(BuildConfigurationInfo(qtVersion, config, QString(), QString()));
+    QtVersion::QmakeBuildConfigs config = qtVersion->defaultBuildConfig();
+    bool buildAll = config & QtVersion::BuildAll;
+    QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), id);
+    infos.append(BuildConfigurationInfo(qtVersion, config, QString(), dir));
+    if (buildAll)
+        infos.append(BuildConfigurationInfo(qtVersion, config ^ QtVersion::DebugBuild, QString(), dir));
 
     return create(parent, id, infos);
 }