diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index b478faa465f781c98ec1ac709d42b847ce8f57ec..44f9c084daa42c9ef840f292a530b993577fdb10 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -196,6 +196,7 @@ void BuildConfiguration::cloneSteps(BuildConfiguration *source)
     m_stepLists.clear();
     foreach (BuildStepList *bsl, source->m_stepLists) {
         BuildStepList *newBsl = new BuildStepList(this, bsl);
+        newBsl->cloneSteps(bsl);
         m_stepLists.append(newBsl);
     }
 }
diff --git a/src/plugins/projectexplorer/buildsteplist.h b/src/plugins/projectexplorer/buildsteplist.h
index 837756f941a42382ea86bd36605fefd2d5386f25..394c1ebea37b79cae03f2fa7944c3aeebf269afc 100644
--- a/src/plugins/projectexplorer/buildsteplist.h
+++ b/src/plugins/projectexplorer/buildsteplist.h
@@ -65,6 +65,7 @@ public:
     Target *target() const;
 
     virtual QVariantMap toMap() const;
+    void cloneSteps(BuildStepList *source);
 
 signals:
     void stepInserted(int position);
@@ -73,8 +74,6 @@ signals:
     void stepMoved(int from, int to);
 
 protected:
-    void cloneSteps(BuildStepList *source);
-
     virtual bool fromMap(const QVariantMap &map);
 
 private:
diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp
index 7dd79392b4433caad272d4722083b672ba35a074..51cc1e54ddf8a82d32bfabf99ed5c99dae11a482 100644
--- a/src/plugins/projectexplorer/deployconfiguration.cpp
+++ b/src/plugins/projectexplorer/deployconfiguration.cpp
@@ -129,6 +129,7 @@ void DeployConfiguration::cloneSteps(DeployConfiguration *source)
         return;
     delete m_stepList;
     m_stepList = new BuildStepList(this, source->stepList());
+    m_stepList->cloneSteps(source->stepList());
 }
 
 ///