diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 4edc5abc8f6d785015811cb351c50f340905f385..60c8ccafd8061c670dac28735b39672094b88129 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -225,6 +225,7 @@ bool QMakeStep::processFinished(int exitCode, QProcess::ExitStatus status)
     bool result = AbstractProcessStep::processFinished(exitCode, status);
     if (!result)
         m_forced = true;
+    qt4BuildConfiguration()->emitBuildDirectoryInitialized();
     return result;
 }
 
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index 1cf57a5b054473d243e339161947661d80be9053..e205507d9be06e8861be367dacfb0ef2422e09a3 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -372,6 +372,11 @@ void Qt4BuildConfiguration::emitQMakeBuildConfigurationChanged()
     emit qmakeBuildConfigurationChanged();
 }
 
+void Qt4BuildConfiguration::emitBuildDirectoryInitialized()
+{
+    emit buildDirectoryInitialized();
+}
+
 void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const
 {
     QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig();
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h
index 08c032d8ba4a589f2e85a9c65fb1c2e0c13acbf3..3846e587ff200acb8f8f9b369c4660c613e3be5b 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h
@@ -86,6 +86,9 @@ public:
     // used by qmake step to notify that the qmake args have changed
     // not really nice
     void emitQMakeBuildConfigurationChanged();
+    // used by qmake step to notify that the build directory was initialized
+    // not really nice
+    void emitBuildDirectoryInitialized();
     void getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const;
 
     // Those functions are used in a few places.
@@ -120,6 +123,8 @@ signals:
     /// configuration changed
     void targetInformationChanged();
 
+    void buildDirectoryInitialized();
+
 private slots:
     void qtVersionsChanged(const QList<int> &changedVersions);
 
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 01e6e85221e6af812a8bafd12ab54b1e7f409a5e..05a6ef003c11f73d82fcb7dfa73be1314314089a 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -390,6 +390,10 @@ void Qt4Project::onAddedTarget(ProjectExplorer::Target *t)
     Q_ASSERT(t);
     connect(t, SIGNAL(targetInformationChanged()),
             this, SLOT(changeTargetInformation()));
+    Qt4Target *qt4target = qobject_cast<Qt4Target *>(t);
+    Q_ASSERT(qt4target);
+    connect(qt4target, SIGNAL(buildDirectoryInitialized()),
+            this, SIGNAL(buildDirectoryInitialized()));
 }
 
 void Qt4Project::updateCodeModel()
diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h
index 026ae43629499215235c2126e721f6fdba9315a1..2db01774824c8152f513957012886670b4d90173 100644
--- a/src/plugins/qt4projectmanager/qt4project.h
+++ b/src/plugins/qt4projectmanager/qt4project.h
@@ -172,6 +172,7 @@ signals:
     /// (which can happen by the active target changing, too).
     void targetInformationChanged();
     void proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode *node);
+    void buildDirectoryInitialized();
 
 public slots:
     void proFileParseError(const QString &errorMessage);
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index 9aab42f1344d073657ea1f3e91a4bb780187337f..7825142f70fcf82f08da68f0da498efcbb0d71df 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -41,7 +41,6 @@
 #include <coreplugin/mainwindow.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/buildconfiguration.h>
-#include <projectexplorer/buildmanager.h>
 #include <utils/qtcassert.h>
 #include <extensionsystem/pluginmanager.h>
 
@@ -103,8 +102,7 @@ Qt4ProjectConfigWidget::Qt4ProjectConfigWidget(Qt4Project *project)
     connect(m_ui->manageQtVersionPushButtons, SIGNAL(clicked()),
             this, SLOT(manageQtVersions()));
 
-    connect(ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(),
-            SIGNAL(buildQueueFinished(bool)),
+    connect(project, SIGNAL(buildDirectoryInitialized()),
             this, SLOT(updateImportLabel()));
 
     QtVersionManager *vm = QtVersionManager::instance();
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 11feec2c3b6ec4dc820d2f0a673fb0f3ec237eac..7eb7c60d219576c31840e4d89c338404ce9c3f10 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -190,6 +190,8 @@ Qt4Target::Qt4Target(Qt4Project *parent, const QString &id) :
             this, SIGNAL(environmentChanged()));
     connect(this, SIGNAL(addedRunConfiguration(ProjectExplorer::RunConfiguration*)),
             this, SLOT(onAddedRunConfiguration(ProjectExplorer::RunConfiguration*)));
+    connect(this, SIGNAL(addedBuildConfiguration(ProjectExplorer::BuildConfiguration*)),
+            this, SLOT(onAddedBuildConfiguration(ProjectExplorer::BuildConfiguration*)));
     connect(this, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)),
             this, SLOT(updateToolTipAndIcon()));
 
@@ -403,6 +405,15 @@ void Qt4Target::onAddedRunConfiguration(ProjectExplorer::RunConfiguration *rc)
             this, SLOT(slotUpdateDeviceInformation()));
 }
 
+void Qt4Target::onAddedBuildConfiguration(ProjectExplorer::BuildConfiguration *bc)
+{
+    Q_ASSERT(bc);
+    Qt4BuildConfiguration *qt4bc = qobject_cast<Qt4BuildConfiguration *>(bc);
+    Q_ASSERT(qt4bc);
+    connect(qt4bc, SIGNAL(buildDirectoryInitialized()),
+            this, SIGNAL(buildDirectoryInitialized()));
+}
+
 void Qt4Target::slotUpdateDeviceInformation()
 {
     S60DeviceRunConfiguration *deviceRc(qobject_cast<S60DeviceRunConfiguration *>(sender()));
diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h
index 7bd3e0a49155cd5df8dc5a7f23106a09aee912d6..cd91d3923584c2661d661821f889a8fc554f89fa 100644
--- a/src/plugins/qt4projectmanager/qt4target.h
+++ b/src/plugins/qt4projectmanager/qt4target.h
@@ -99,12 +99,15 @@ signals:
     /// targetInformationChanged() or if the active build configuration changes
     void targetInformationChanged();
 
+    void buildDirectoryInitialized();
+
 protected:
     bool fromMap(const QVariantMap &map);
 
 private slots:
     void updateQtVersion();
     void onAddedRunConfiguration(ProjectExplorer::RunConfiguration *rc);
+    void onAddedBuildConfiguration(ProjectExplorer::BuildConfiguration *bc);
     void slotUpdateDeviceInformation();
     void updateToolTipAndIcon();