diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 45b78955d360a5f4939cd0ddf484af8d816aa247..98258c13375c30974827c614d1a9fed8613f1b55 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -138,7 +138,6 @@ BuildConfiguration *CMakeBuildConfigurationFactory::clone(ProjectExplorer::Build
 {
     CMakeBuildConfiguration *old = static_cast<CMakeBuildConfiguration *>(source);
     CMakeBuildConfiguration *bc = new CMakeBuildConfiguration(old);
-    m_project->addBuildConfiguration(bc);
     return bc;
 }
 
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 9f14985559796f999c79908a76042c45f4b762f0..242e04c8c893a575bf36ca39961c74857e780cc7 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -159,7 +159,6 @@ BuildConfiguration *GenericBuildConfigurationFactory::create(const QString &type
 BuildConfiguration *GenericBuildConfigurationFactory::clone(BuildConfiguration *source) const
 {
     GenericBuildConfiguration *bc = new GenericBuildConfiguration(static_cast<GenericBuildConfiguration *>(source));
-    m_project->addBuildConfiguration(bc);
     return bc;
 }
 
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h
index 216c1a24db68e6085e615b3841e831713030e2bf..49a4215493ae2197e0521066aa6721ec18f43fc0 100644
--- a/src/plugins/projectexplorer/buildconfiguration.h
+++ b/src/plugins/projectexplorer/buildconfiguration.h
@@ -114,7 +114,7 @@ public:
     // project mode for editing
     virtual BuildConfiguration *create(const QString &type) const = 0;
 
-    // clones a given BuildConfiguration and adds it to the project
+    // clones a given BuildConfiguration, should not add it to the project
     virtual BuildConfiguration *clone(BuildConfiguration *source) const = 0;
 
     // restores a BuildConfiguration with the name and adds it to the project
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 12f8e13983f50efb1a247328630c69d18445bf33..3978b744a35a3aef7f655d5e0f3e68e0c3760d35 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -339,6 +339,7 @@ void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfigura
 
     m_buildConfiguration = m_project->buildConfigurationFactory()->clone(sourceConfiguration);
     m_buildConfiguration->setDisplayName(newDisplayName);
+    m_project->addBuildConfiguration(m_buildConfiguration);
 
     updateBuildSettings();
 }
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 9bfbc47e178e3ec932700dc47d30b846fc3b7c98..88d2afad29758b9b11f56a1a645627ff2b164246 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -298,7 +298,6 @@ BuildConfiguration *Qt4BuildConfigurationFactory::clone(BuildConfiguration *sour
 {
     Qt4BuildConfiguration *oldbc = static_cast<Qt4BuildConfiguration *>(source);
     Qt4BuildConfiguration *newbc = new Qt4BuildConfiguration(oldbc);
-    m_project->addBuildConfiguration(newbc);
     return newbc;
 }