diff --git a/src/plugins/projectexplorer/projectconfiguration.cpp b/src/plugins/projectexplorer/projectconfiguration.cpp
index 1c073ec47774ce8b0cc5d19a1ac358a2cf8a34e8..4210a439c623f297e60cdb219ceada4dd4719d85 100644
--- a/src/plugins/projectexplorer/projectconfiguration.cpp
+++ b/src/plugins/projectexplorer/projectconfiguration.cpp
@@ -75,7 +75,11 @@ void ProjectConfiguration::setDisplayName(const QString &name)
 {
     if (displayName() == name)
         return;
-    m_displayName = name;
+    if (name == m_defaultDisplayName) {
+        m_displayName.clear();
+    } else {
+        m_displayName = name;
+    }
     emit displayNameChanged();
 }
 
@@ -89,6 +93,11 @@ void ProjectConfiguration::setDefaultDisplayName(const QString &name)
         emit displayNameChanged();
 }
 
+bool ProjectConfiguration::usesDefaultDisplayName() const
+{
+    return m_displayName.isEmpty();
+}
+
 QVariantMap ProjectConfiguration::toMap() const
 {
     QVariantMap map;
diff --git a/src/plugins/projectexplorer/projectconfiguration.h b/src/plugins/projectexplorer/projectconfiguration.h
index 711a5da1c09ccbafc1844f52dd329264c74c3d12..ec3304674895d9d829f06dc37f4119a501f5999b 100644
--- a/src/plugins/projectexplorer/projectconfiguration.h
+++ b/src/plugins/projectexplorer/projectconfiguration.h
@@ -53,6 +53,8 @@ public:
 
     QString id() const;
     QString displayName() const;
+
+    bool usesDefaultDisplayName() const;
     void setDisplayName(const QString &name);
     void setDefaultDisplayName(const QString &name);
 
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp
index f69cbaa08d5323ae4ad8112cef77642fcbdf4c35..c0a7487461a56e8cd306dd2725a93900cff39350 100644
--- a/src/plugins/projectexplorer/target.cpp
+++ b/src/plugins/projectexplorer/target.cpp
@@ -144,7 +144,13 @@ void Target::addBuildConfiguration(BuildConfiguration *configuration)
     foreach (const BuildConfiguration *bc, d->m_buildConfigurations)
         displayNames << bc->displayName();
     configurationDisplayName = Project::makeUnique(configurationDisplayName, displayNames);
-    configuration->setDisplayName(configurationDisplayName);
+    if (configurationDisplayName != configuration->displayName()) {
+        if (configuration->usesDefaultDisplayName()) {
+            configuration->setDefaultDisplayName(configurationDisplayName);
+        } else {
+            configuration->setDisplayName(configurationDisplayName);
+        }
+    }
 
     // Make sure we have a sane tool chain if at all possible
     if (!configuration->toolChain()
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
index 6348328b5e74b9b760faeb6a4110bf0880985675..48de0fff08fb55af364cfe0735efa946c6d37166 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp
@@ -177,7 +177,7 @@ ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Projec
     Qt4DesktopTarget *t = new Qt4DesktopTarget(static_cast<Qt4Project *>(parent), id);
 
     foreach (const BuildConfigurationInfo &info, infos)
-        t->addQt4BuildConfiguration(msgBuildConfigurationName(info),
+        t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(),
                                     info.version, info.buildConfig,
                                     info.additionalArguments, info.directory);
 
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
index 5db9d283273f824ec01fc79b063171f8b341cfad..474a2eb04572ccf5d16d39c4c8916fe0274716d2 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp
@@ -162,7 +162,7 @@ ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Proj
     Qt4SimulatorTarget *t = new Qt4SimulatorTarget(static_cast<Qt4Project *>(parent), id);
 
     foreach (const BuildConfigurationInfo &info, infos)
-        t->addQt4BuildConfiguration(msgBuildConfigurationName(info), info.version, info.buildConfig,
+        t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig,
                                     info.additionalArguments, info.directory);
 
     t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID));
diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp
index ebbb55f079c5ea6f81271ff3c787f5e4ce1d223a..588d4fc1a748f44434940039547766fd26671773 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp
@@ -212,7 +212,7 @@ ProjectExplorer::Target *Qt4MaemoTargetFactory::create(ProjectExplorer::Project
     Q_ASSERT(target);
 
     foreach (const BuildConfigurationInfo &info, infos)
-        target->addQt4BuildConfiguration(msgBuildConfigurationName(info),
+        target->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(),
                                          info.version, info.buildConfig,
                                          info.additionalArguments, info.directory);
 
diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
index 2b22ecbcb4062a61db5141d43ad3db647f8e72cb..cfd029d4f6c5be9c1bcb84f150920dc7ada049b2 100644
--- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
@@ -219,7 +219,7 @@ ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Projec
         return 0;
     Qt4SymbianTarget *t = new Qt4SymbianTarget(static_cast<Qt4Project *>(parent), id);
     foreach (const BuildConfigurationInfo &info, infos)
-        t->addQt4BuildConfiguration(msgBuildConfigurationName(info),
+        t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(),
                                     info.version, info.buildConfig,
                                     info.additionalArguments, info.directory);
 
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index cddecb48e43d1f19fc6a06f540d8f17b4319a21b..4b505cc7ec67936bfd2282f5c74a937415cc8600 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -734,14 +734,24 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target
         return 0;
 
     //: Debug build configuration. We recommend not translating it.
-    BuildConfiguration *bc = qt4Target->addQt4BuildConfiguration(tr("%1 Debug").arg(buildConfigurationName),
+    QString defaultDebugName = tr("%1 Debug").arg(version->displayName());
+    QString customDebugName;
+    if (buildConfigurationName != version->displayName())
+        customDebugName = tr("%1 Debug").arg(buildConfigurationName);
+
+    BuildConfiguration *bc = qt4Target->addQt4BuildConfiguration(defaultDebugName, customDebugName,
                                         version,
                                         (version->defaultBuildConfig() | QtSupport::BaseQtVersion::DebugBuild),
                                         QString(), QString());
 
     if (qt4Target->id() != Constants::S60_EMULATOR_TARGET_ID) {
         //: Release build configuration. We recommend not translating it.
-        bc = qt4Target->addQt4BuildConfiguration(tr("%1 Release").arg(buildConfigurationName),
+        QString defaultReleaseName = tr("%1 Release").arg(version->displayName());
+        QString customReleaseName;
+        if (buildConfigurationName != version->displayName())
+            customReleaseName = tr("%1 Release").arg(buildConfigurationName);
+
+        bc = qt4Target->addQt4BuildConfiguration(defaultReleaseName, customReleaseName,
                                                  version,
                                                  (version->defaultBuildConfig() & ~QtSupport::BaseQtVersion::DebugBuild),
                                                  QString(), QString());
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index f0cf14bcd9a04ff663bf72f76db4d76e350bb4f9..898832c00c024a679acda1caeddd26dcd0e15b7b 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -473,9 +473,29 @@ void Qt4ProjectConfigWidget::qtVersionSelected(const QString &)
     QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
     QtSupport::BaseQtVersion *newQtVersion = vm->version(newQtVersionId);
 
+    if (newQtVersion) {
+        const QString qtVersionName = newQtVersion->displayName();
+        QString defaultConfigName = (m_buildConfiguration->buildType() & BuildConfiguration::Debug) ?
+            //: Name of a debug build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.
+            tr("%1 Debug").arg(qtVersionName) :
+            //: Name of a release build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.
+            tr("%1 Release").arg(qtVersionName);
+
+        // make name unique
+        QStringList displayNames;
+        foreach (const BuildConfiguration *bc, m_buildConfiguration->target()->buildConfigurations()) {
+            if (bc != m_buildConfiguration)
+                displayNames << bc->displayName();
+        }
+        defaultConfigName = Project::makeUnique(defaultConfigName, displayNames);
+
+        m_buildConfiguration->setDefaultDisplayName(defaultConfigName);
+    }
+
     m_ignoreChange = true;
     m_buildConfiguration->setQtVersion(newQtVersion);
     m_ignoreChange = false;
+
     m_ui->qtVersionComboBox->setToolTip(newQtVersion ? newQtVersion->toHtml(false) : QString());
 
     updateShadowBuildUi();
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 27bd17f6ced73736fdb4bff6d46658d54a4bddb3..106bbb1aa5c18b3796aeadd1f47bda6e89989a69 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -277,7 +277,8 @@ void Qt4BaseTarget::removeUnconfiguredCustomExectutableRunConfigurations()
     }
 }
 
-Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString displayName, QtSupport::BaseQtVersion *qtversion,
+Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString defaultDisplayName,
+                                                           QString displayName, QtSupport::BaseQtVersion *qtversion,
                                                            QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
                                                            QString additionalArguments,
                                                            QString directory)
@@ -287,7 +288,8 @@ Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString displayNa
 
     // Add the buildconfiguration
     Qt4BuildConfiguration *bc = new Qt4BuildConfiguration(this);
-    bc->setDefaultDisplayName(displayName);
+    bc->setDefaultDisplayName(defaultDisplayName);
+    bc->setDisplayName(displayName);
 
     ProjectExplorer::BuildStepList *buildSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);
     ProjectExplorer::BuildStepList *cleanSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN);
diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h
index 90bb416194ce9ec5f17b03ac630f5006e39ce135..7ae9c9cc819e8a7f216ab1f916bde6faea627aa2 100644
--- a/src/plugins/qt4projectmanager/qt4target.h
+++ b/src/plugins/qt4projectmanager/qt4target.h
@@ -77,9 +77,16 @@ public:
 
     // This is the same for almost all Qt4Targets
     // so for now offer a convience function
+<<<<<<< HEAD
     Qt4BuildConfiguration *addQt4BuildConfiguration(QString displayName,
                                                             QtSupport::BaseQtVersion *qtversion,
                                                             QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
+=======
+    Qt4BuildConfiguration *addQt4BuildConfiguration(QString defaultDisplayName,
+                                                            QString displayName,
+                                                            BaseQtVersion *qtversion,
+                                                            BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
+>>>>>>> BuildConfiguration: Adapt name if Qt version changes
                                                             QString additionalArguments,
                                                             QString directory);