diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 81d53b625b855ef43f050eb2124555f896a8e424..9127252b0833694f62930aa354e97acd84ef1e92 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -44,23 +44,19 @@ using namespace Internal;
 namespace {
 const char * const CMAKE_BC_ID("CMakeProjectManager.CMakeBuildConfiguration");
 
-const char * const USER_ENVIRONMENT_CHANGES_KEY("CMakeProjectManager.CMakeBuildConfiguration.UserEnvironmentChanges");
 const char * const MSVC_VERSION_KEY("CMakeProjectManager.CMakeBuildConfiguration.MsvcVersion");
 const char * const BUILD_DIRECTORY_KEY("CMakeProjectManager.CMakeBuildConfiguration.BuildDirectory");
 } // namespace
 
 CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent) :
     BuildConfiguration(parent, QLatin1String(CMAKE_BC_ID)),
-    m_toolChain(0),
-    m_clearSystemEnvironment(false)
+    m_toolChain(0)
 {
 }
 
 CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent, CMakeBuildConfiguration *source) :
     BuildConfiguration(parent, source),
     m_toolChain(0),
-    m_clearSystemEnvironment(source->m_clearSystemEnvironment),
-    m_userEnvironmentChanges(source->m_userEnvironmentChanges),
     m_buildDirectory(source->m_buildDirectory),
     m_msvcVersion(source->m_msvcVersion)
 {
@@ -70,8 +66,6 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent, CMakeBuild
 QVariantMap CMakeBuildConfiguration::toMap() const
 {
     QVariantMap map(ProjectExplorer::BuildConfiguration::toMap());
-    map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY),
-               ProjectExplorer::EnvironmentItem::toStringList(m_userEnvironmentChanges));
     map.insert(QLatin1String(MSVC_VERSION_KEY), m_msvcVersion);
     map.insert(QLatin1String(BUILD_DIRECTORY_KEY), m_buildDirectory);
     return map;
@@ -79,7 +73,6 @@ QVariantMap CMakeBuildConfiguration::toMap() const
 
 bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
 {
-    m_userEnvironmentChanges = ProjectExplorer::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
     m_msvcVersion = map.value(QLatin1String(MSVC_VERSION_KEY)).toString();
     m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY)).toString();
 
@@ -96,55 +89,6 @@ CMakeTarget *CMakeBuildConfiguration::cmakeTarget() const
     return static_cast<CMakeTarget *>(target());
 }
 
-ProjectExplorer::Environment CMakeBuildConfiguration::baseEnvironment() const
-{
-    ProjectExplorer::Environment env = useSystemEnvironment() ?
-                                       ProjectExplorer::Environment(QProcess::systemEnvironment()) :
-                                       ProjectExplorer::Environment();
-    return env;
-}
-
-QString CMakeBuildConfiguration::baseEnvironmentText() const
-{
-    if (useSystemEnvironment())
-        return tr("System Environment");
-    else
-        return tr("Clear Environment");
-}
-
-ProjectExplorer::Environment CMakeBuildConfiguration::environment() const
-{
-    ProjectExplorer::Environment env = baseEnvironment();
-    env.modify(userEnvironmentChanges());
-    return env;
-}
-
-void CMakeBuildConfiguration::setUseSystemEnvironment(bool b)
-{
-    if (b == m_clearSystemEnvironment)
-        return;
-    m_clearSystemEnvironment = !b;
-    emit environmentChanged();
-}
-
-bool CMakeBuildConfiguration::useSystemEnvironment() const
-{
-    return !m_clearSystemEnvironment;
-}
-
-QList<ProjectExplorer::EnvironmentItem> CMakeBuildConfiguration::userEnvironmentChanges() const
-{
-    return m_userEnvironmentChanges;
-}
-
-void CMakeBuildConfiguration::setUserEnvironmentChanges(const QList<ProjectExplorer::EnvironmentItem> &diff)
-{
-    if (m_userEnvironmentChanges == diff)
-        return;
-    m_userEnvironmentChanges = diff;
-    emit environmentChanged();
-}
-
 QString CMakeBuildConfiguration::buildDirectory() const
 {
     QString buildDirectory = m_buildDirectory;
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
index b2495de925982d1a2446ba07cfb0f0aa92f3499f..6fb65a9017635628930960bd1de31a25ca953590 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
@@ -50,14 +50,6 @@ public:
 
     CMakeTarget *cmakeTarget() const;
 
-    ProjectExplorer::Environment environment() const;
-    ProjectExplorer::Environment baseEnvironment() const;
-    QString baseEnvironmentText() const;
-    void setUserEnvironmentChanges(const QList<ProjectExplorer::EnvironmentItem> &diff);
-    QList<ProjectExplorer::EnvironmentItem> userEnvironmentChanges() const;
-    bool useSystemEnvironment() const;
-    void setUseSystemEnvironment(bool b);
-
     virtual QString buildDirectory() const;
 
     ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
@@ -80,8 +72,6 @@ protected:
 private:
     void updateToolChain() const;
     mutable ProjectExplorer::ToolChain *m_toolChain;
-    bool m_clearSystemEnvironment;
-    QList<ProjectExplorer::EnvironmentItem> m_userEnvironmentChanges;
     QString m_buildDirectory;
     QString m_msvcVersion;
 };
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 86c71af8e4cd906a5c7adfc270f648c0cbe950d7..cb6ab49044046061ebf59f2ec0363925b83ad69e 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -34,10 +34,10 @@
 #include "cmaketarget.h"
 #include "makestep.h"
 #include "cmakeopenprojectwizard.h"
-#include "cmakebuildenvironmentwidget.h"
 #include "cmakebuildconfiguration.h"
 
 #include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/buildenvironmentwidget.h>
 #include <cpptools/cppmodelmanagerinterface.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/qtcassert.h>
@@ -449,7 +449,7 @@ ProjectExplorer::BuildConfigWidget *CMakeProject::createConfigWidget()
 QList<ProjectExplorer::BuildConfigWidget*> CMakeProject::subConfigWidgets()
 {
     QList<ProjectExplorer::BuildConfigWidget*> list;
-    list <<  new CMakeBuildEnvironmentWidget(this);
+    list << new BuildEnvironmentWidget;
     return list;
 }
 
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
index dc1623c567fe92de9a372b525d5300e65ba644df..a596291d07c50e455d3cd6b5002437d6e8901f38 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
@@ -11,7 +11,6 @@ HEADERS = cmakeproject.h \
     makestep.h \
     cmakerunconfiguration.h \
     cmakeopenprojectwizard.h \
-    cmakebuildenvironmentwidget.h \
     cmakebuildconfiguration.h
 SOURCES = cmakeproject.cpp \
     cmakeprojectplugin.cpp \
@@ -21,7 +20,6 @@ SOURCES = cmakeproject.cpp \
     makestep.cpp \
     cmakerunconfiguration.cpp \
     cmakeopenprojectwizard.cpp \
-    cmakebuildenvironmentwidget.cpp \
     cmakebuildconfiguration.cpp
 RESOURCES += cmakeproject.qrc
 FORMS +=
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index 91fb002b3f204ae4dac3c8d80d54f32d892f2c1f..5a1c3f1343ed0f7428179b97d7c5e2ec6690e6e2 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -33,6 +33,7 @@
 #include "genericprojectconstants.h"
 #include "generictarget.h"
 
+#include <projectexplorer/buildenvironmentwidget.h>
 #include <projectexplorer/toolchain.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <cpptools/cppmodelmanagerinterface.h>
@@ -399,7 +400,9 @@ ProjectExplorer::BuildConfigWidget *GenericProject::createConfigWidget()
 
 QList<ProjectExplorer::BuildConfigWidget*> GenericProject::subConfigWidgets()
 {
-    return QList<ProjectExplorer::BuildConfigWidget*>();
+    QList<ProjectExplorer::BuildConfigWidget*> list;
+    list << new BuildEnvironmentWidget;
+    return list;
 }
 
 GenericProjectNode *GenericProject::rootProjectNode() const
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index 6cc5de01dabec877304e7896d33b5f0d9e79459f..cb14f3843593db5d82660a1bddaa059875083305 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -33,6 +33,8 @@
 #include <coreplugin/icore.h>
 #include <extensionsystem/pluginmanager.h>
 
+#include <QtCore/QProcess>
+
 using namespace ProjectExplorer;
 
 namespace {
@@ -59,19 +61,24 @@ const char * const BUILD_STEPS_COUNT_KEY("ProjectExplorer.BuildConfiguration.Bui
 const char * const BUILD_STEPS_PREFIX("ProjectExplorer.BuildConfiguration.BuildStep.");
 const char * const CLEAN_STEPS_COUNT_KEY("ProjectExplorer.BuildConfiguration.CleanStepsCount");
 const char * const CLEAN_STEPS_PREFIX("ProjectExplorer.BuildConfiguration.CleanStep.");
+const char * const CLEAR_SYSTEM_ENVIRONMENT_KEY("ProjectExplorer.BuildConfiguration.ClearSystemEnvironment");
+const char * const USER_ENVIRONMENT_CHANGES_KEY("ProjectExplorer.BuildConfiguration.UserEnvironmentChanges");
 
 } // namespace
 
 BuildConfiguration::BuildConfiguration(Target *target, const QString &id) :
     ProjectConfiguration(id),
-    m_target(target)
+    m_target(target),
+    m_clearSystemEnvironment(false)
 {
     Q_ASSERT(m_target);
 }
 
 BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *source) :
     ProjectConfiguration(source),
-    m_target(target)
+    m_target(target),
+    m_clearSystemEnvironment(source->m_clearSystemEnvironment),
+    m_userEnvironmentChanges(source->m_userEnvironmentChanges)
 {
     Q_ASSERT(m_target);
 }
@@ -91,6 +98,8 @@ QVariantMap BuildConfiguration::toMap() const
     map.insert(QLatin1String(CLEAN_STEPS_COUNT_KEY), m_cleanSteps.count());
     for (int i = 0; i < m_cleanSteps.count(); ++i)
         map.insert(QString::fromLatin1(CLEAN_STEPS_PREFIX) + QString::number(i), m_cleanSteps.at(i)->toMap());
+    map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), m_clearSystemEnvironment);
+    map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(m_userEnvironmentChanges));
 
     return map;
 }
@@ -165,6 +174,9 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
         insertCleanStep(m_cleanSteps.count(), bs);
     }
 
+    m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
+    m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
+
     return true;
 }
 
@@ -220,6 +232,54 @@ Target *BuildConfiguration::target() const
     return m_target;
 }
 
+Environment BuildConfiguration::baseEnvironment() const
+{
+    if (useSystemEnvironment())
+        return Environment(QProcess::systemEnvironment());
+    return Environment();
+}
+
+QString BuildConfiguration::baseEnvironmentText() const
+{
+    if (useSystemEnvironment())
+        return tr("System Environment");
+    else
+        return tr("Clean Environment");
+}
+
+Environment BuildConfiguration::environment() const
+{
+    Environment env = baseEnvironment();
+    env.modify(userEnvironmentChanges());
+    return env;
+}
+
+void BuildConfiguration::setUseSystemEnvironment(bool b)
+{
+    if (useSystemEnvironment() == b)
+        return;
+    m_clearSystemEnvironment = !b;
+    emit environmentChanged();
+}
+
+bool BuildConfiguration::useSystemEnvironment() const
+{
+    return !m_clearSystemEnvironment;
+}
+
+QList<EnvironmentItem> BuildConfiguration::userEnvironmentChanges() const
+{
+    return m_userEnvironmentChanges;
+}
+
+void BuildConfiguration::setUserEnvironmentChanges(const QList<ProjectExplorer::EnvironmentItem> &diff)
+{
+    if (m_userEnvironmentChanges == diff)
+        return;
+    m_userEnvironmentChanges = diff;
+    emit environmentChanged();
+}
+
 ///
 // IBuildConfigurationFactory
 ///
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h
index c6004821e0747204ac6a2c3d4a899238ff8f219b..e391e03877fed02ada0ce26a103d62dcf55ea68d 100644
--- a/src/plugins/projectexplorer/buildconfiguration.h
+++ b/src/plugins/projectexplorer/buildconfiguration.h
@@ -63,11 +63,19 @@ public:
     void removeCleanStep(int position);
     void moveCleanStepUp(int position);
 
-    virtual Environment environment() const = 0;
     virtual QString buildDirectory() const = 0;
 
     Target *target() const;
 
+    // TODO: Maybe the BuildConfiguration is not the best place for the environment
+    virtual Environment baseEnvironment() const;
+    QString baseEnvironmentText() const;
+    Environment environment() const;
+    void setUserEnvironmentChanges(const QList<EnvironmentItem> &diff);
+    QList<EnvironmentItem> userEnvironmentChanges() const;
+    bool useSystemEnvironment() const;
+    void setUseSystemEnvironment(bool b);
+
     virtual QVariantMap toMap() const;
 
 signals:
@@ -85,6 +93,9 @@ private:
     QList<BuildStep *> m_buildSteps;
     QList<BuildStep *> m_cleanSteps;
     Target *m_target;
+
+    bool m_clearSystemEnvironment;
+    QList<EnvironmentItem> m_userEnvironmentChanges;
 };
 
 class PROJECTEXPLORER_EXPORT IBuildConfigurationFactory :
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp b/src/plugins/projectexplorer/buildenvironmentwidget.cpp
similarity index 75%
rename from src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
rename to src/plugins/projectexplorer/buildenvironmentwidget.cpp
index 4c1c037d5908866d401b1429f9df26d7598e41f0..e7f741f93514cbc318dea4ba895f839ccf322647 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.cpp
+++ b/src/plugins/projectexplorer/buildenvironmentwidget.cpp
@@ -27,29 +27,27 @@
 **
 **************************************************************************/
 
-#include "cmakebuildenvironmentwidget.h"
-#include "cmakeproject.h"
-#include "cmakebuildconfiguration.h"
-#include <projectexplorer/environmenteditmodel.h>
+#include "buildenvironmentwidget.h"
+
+#include "buildconfiguration.h"
+#include "environmenteditmodel.h"
+
+#include <utils/qtcassert.h>
+
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QCheckBox>
 
-namespace {
-bool debug = false;
-}
-
-using namespace CMakeProjectManager;
-using namespace CMakeProjectManager::Internal;
+using namespace ProjectExplorer;
 
-CMakeBuildEnvironmentWidget::CMakeBuildEnvironmentWidget(CMakeProject *project)
-    : BuildConfigWidget(), m_pro(project), m_buildConfiguration(0)
+BuildEnvironmentWidget::BuildEnvironmentWidget()
+    : m_buildConfiguration(0)
 {
     QVBoxLayout *vbox = new QVBoxLayout(this);
     vbox->setMargin(0);
     m_clearSystemEnvironmentCheckBox = new QCheckBox(this);
     m_clearSystemEnvironmentCheckBox->setText(tr("Clear system environment"));
 
-    m_buildEnvironmentWidget = new ProjectExplorer::EnvironmentWidget(this, m_clearSystemEnvironmentCheckBox);
+    m_buildEnvironmentWidget = new EnvironmentWidget(this, m_clearSystemEnvironmentCheckBox);
     vbox->addWidget(m_buildEnvironmentWidget);
 
     connect(m_buildEnvironmentWidget, SIGNAL(userChangesChanged()),
@@ -58,26 +56,31 @@ CMakeBuildEnvironmentWidget::CMakeBuildEnvironmentWidget(CMakeProject *project)
             this, SLOT(clearSystemEnvironmentCheckBoxClicked(bool)));
 }
 
-QString CMakeBuildEnvironmentWidget::displayName() const
+QString BuildEnvironmentWidget::displayName() const
 {
     return tr("Build Environment");
 }
 
-void CMakeBuildEnvironmentWidget::init(ProjectExplorer::BuildConfiguration *bc)
+void BuildEnvironmentWidget::init(BuildConfiguration *bc)
 {
-    if (debug)
-        qDebug() << "Qt4BuildConfigWidget::init()";
+    QTC_ASSERT(bc, return);
 
     if (m_buildConfiguration) {
         disconnect(m_buildConfiguration, SIGNAL(environmentChanged()),
                    this, SLOT(environmentChanged()));
     }
-    m_buildConfiguration = static_cast<CMakeBuildConfiguration *>(bc);
+
+    m_buildConfiguration = static_cast<BuildConfiguration *>(bc);
+
+    if (!m_buildConfiguration) {
+        setEnabled(false);
+        return;
+    }
+    setEnabled(true);
 
     connect(m_buildConfiguration, SIGNAL(environmentChanged()),
             this, SLOT(environmentChanged()));
 
-
     m_clearSystemEnvironmentCheckBox->setChecked(!m_buildConfiguration->useSystemEnvironment());
     m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment());
     m_buildEnvironmentWidget->setBaseEnvironmentText(m_buildConfiguration->baseEnvironmentText());
@@ -85,19 +88,19 @@ void CMakeBuildEnvironmentWidget::init(ProjectExplorer::BuildConfiguration *bc)
     m_buildEnvironmentWidget->updateButtons();
 }
 
-void CMakeBuildEnvironmentWidget::environmentModelUserChangesChanged()
+void BuildEnvironmentWidget::environmentModelUserChangesChanged()
 {
     m_buildConfiguration->setUserEnvironmentChanges(m_buildEnvironmentWidget->userChanges());
 }
 
-void CMakeBuildEnvironmentWidget::clearSystemEnvironmentCheckBoxClicked(bool checked)
+void BuildEnvironmentWidget::clearSystemEnvironmentCheckBoxClicked(bool checked)
 {
     m_buildConfiguration->setUseSystemEnvironment(!checked);
     m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment());
     m_buildEnvironmentWidget->setBaseEnvironmentText(m_buildConfiguration->baseEnvironmentText());
 }
 
-void CMakeBuildEnvironmentWidget::environmentChanged()
+void BuildEnvironmentWidget::environmentChanged()
 {
     m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment());
     m_buildEnvironmentWidget->setBaseEnvironmentText(m_buildConfiguration->baseEnvironmentText());
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.h b/src/plugins/projectexplorer/buildenvironmentwidget.h
similarity index 74%
rename from src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.h
rename to src/plugins/projectexplorer/buildenvironmentwidget.h
index 82a767ea629962b108db5747d80af8c4d8af42ca..17ee03cfb89f268d17574a4180dec850693b0061 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildenvironmentwidget.h
+++ b/src/plugins/projectexplorer/buildenvironmentwidget.h
@@ -27,32 +27,29 @@
 **
 **************************************************************************/
 
-#ifndef QT4BUILDENVIRONMENTWIDGET_H
-#define QT4BUILDENVIRONMENTWIDGET_H
+#ifndef BUILDENVIRONMENTWIDGET_H
+#define BUILDENVIRONMENTWIDGET_H
 
 #include <projectexplorer/buildstep.h>
+
 QT_BEGIN_NAMESPACE
 class QCheckBox;
 QT_END_NAMESPACE
 
 namespace ProjectExplorer {
-class EnvironmentWidget;
-}
 
-namespace CMakeProjectManager {
-namespace Internal {
-class CMakeProject;
-class CMakeBuildConfiguration;
+class EnvironmentWidget;
+class BuildConfiguration;
 
-class CMakeBuildEnvironmentWidget : public ProjectExplorer::BuildConfigWidget
+class PROJECTEXPLORER_EXPORT BuildEnvironmentWidget : public BuildConfigWidget
 {
     Q_OBJECT
 
 public:
-    CMakeBuildEnvironmentWidget(CMakeProject *project);
+    BuildEnvironmentWidget();
 
     QString displayName() const;
-    void init(ProjectExplorer::BuildConfiguration *bc);
+    void init(BuildConfiguration *bc);
 
 private slots:
     void environmentModelUserChangesChanged();
@@ -60,13 +57,11 @@ private slots:
     void environmentChanged();
 
 private:
-    ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget;
+    EnvironmentWidget *m_buildEnvironmentWidget;
     QCheckBox *m_clearSystemEnvironmentCheckBox;
-    CMakeProject *m_pro;
-    CMakeBuildConfiguration *m_buildConfiguration;
+    BuildConfiguration *m_buildConfiguration;
 };
 
-} // namespace Internal
 } // namespace Qt4ProjectManager
 
-#endif // QT4BUILDENVIRONMENTWIDGET_H
+#endif // BUILDENVIRONMENTWIDGET_H
diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro
index 26001ffaa9bc80e2f76adf24414577a0ede01654..ec21d8e8aad19b09df9da068c536a970633a6296 100644
--- a/src/plugins/projectexplorer/projectexplorer.pro
+++ b/src/plugins/projectexplorer/projectexplorer.pro
@@ -75,7 +75,8 @@ HEADERS += projectexplorer.h \
     targetselector.h \
     targetsettingswidget.h \
     doubletabwidget.h \
-    addtargetdialog.h
+    addtargetdialog.h \
+    buildenvironmentwidget.h
 SOURCES += projectexplorer.cpp \
     projectwindow.cpp \
     buildmanager.cpp \
@@ -137,7 +138,8 @@ SOURCES += projectexplorer.cpp \
     targetselector.cpp \
     targetsettingswidget.cpp \
     doubletabwidget.cpp \
-    addtargetdialog.cpp
+    addtargetdialog.cpp \
+    buildenvironmentwidget.cpp
 FORMS += processstep.ui \
     editorsettingspropertiespage.ui \
     runsettingspropertiespage.ui \
diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp
index 65df8071647ebbc3ae73ea4c7c793c9c7ae9002e..6d94496c7fc41f87750e562db982f47741472082 100644
--- a/src/plugins/projectexplorer/userfileaccessor.cpp
+++ b/src/plugins/projectexplorer/userfileaccessor.cpp
@@ -49,13 +49,10 @@ const char * const WAS_UPDATED("ProjectExplorer.Project.Updater.DidUpdate");
 const char * const PROJECT_FILE_POSTFIX(".user");
 
 // Version 0 is used in Qt Creator 1.3.x and
-// (in a slighly differnt flavour) post 1.3 master.
+// (in a slighly different flavour) post 1.3 master.
 class Version0Handler : public UserFileVersionHandler
 {
 public:
-    Version0Handler();
-    ~Version0Handler();
-
     int userFileVersion() const
     {
         return 0;
@@ -80,9 +77,6 @@ private:
 class Version1Handler : public UserFileVersionHandler
 {
 public:
-    Version1Handler();
-    ~Version1Handler();
-
     int userFileVersion() const
     {
         return 1;
@@ -115,11 +109,29 @@ private:
     };
 };
 
+// Version 2 is used in master post Qt Creator 2.0 alpha.
+class Version2Handler : public UserFileVersionHandler
+{
+public:
+    int userFileVersion() const
+    {
+        return 2;
+    }
+
+    QString displayUserFileVersion() const
+    {
+        return QLatin1String("2.0-alpha+git");
+    }
+
+    QVariantMap update(Project *project, const QVariantMap &map);
+};
+
 //
 // Helper functions:
 //
 
-QString fileNameFor(const QString &name) {
+static QString fileNameFor(const QString &name)
+{
     QString baseName(name);
     QString environmentExtension(QString::fromLocal8Bit(qgetenv("QTC_EXTENSION")));
     if (!environmentExtension.isEmpty()) {
@@ -147,6 +159,31 @@ UserFileVersionHandler::~UserFileVersionHandler()
 {
 }
 
+/**
+ * Performs a simple renaming of the listed keys in \a changes recursively on \a map.
+ */
+QVariantMap UserFileVersionHandler::renameKeys(const QList<Change> &changes, QVariantMap map)
+{
+    foreach (const Change &change, changes) {
+        QVariantMap::iterator oldSetting = map.find(change.first);
+        if (oldSetting != map.end()) {
+            map.insert(change.second, oldSetting.value());
+            map.erase(oldSetting);
+        }
+    }
+
+    QVariantMap::iterator i = map.begin();
+    while (i != map.end()) {
+        QVariant v = i.value();
+        if (v.type() == QVariant::Map)
+            i.value() = renameKeys(changes, v.toMap());
+
+        ++i;
+    }
+
+    return map;
+}
+
 // -------------------------------------------------------------------------
 // UserFileAccessor
 // -------------------------------------------------------------------------
@@ -157,6 +194,7 @@ UserFileAccessor::UserFileAccessor() :
 {
     addVersionHandler(new Version0Handler);
     addVersionHandler(new Version1Handler);
+    addVersionHandler(new Version2Handler);
 }
 
 UserFileAccessor::~UserFileAccessor()
@@ -250,14 +288,6 @@ void UserFileAccessor::addVersionHandler(UserFileVersionHandler *handler)
 // Version0Handler
 // -------------------------------------------------------------------------
 
-Version0Handler::Version0Handler()
-{
-}
-
-Version0Handler::~Version0Handler()
-{
-}
-
 QVariantMap Version0Handler::convertBuildConfigurations(Project *project, const QVariantMap &map)
 {
     Q_ASSERT(project);
@@ -703,14 +733,6 @@ QVariantMap Version0Handler::update(Project *project, const QVariantMap &map)
 // Version1Handler
 // -------------------------------------------------------------------------
 
-Version1Handler::Version1Handler()
-{
-}
-
-Version1Handler::~Version1Handler()
-{
-}
-
 QVariantMap Version1Handler::update(Project *project, const QVariantMap &map)
 {
     QVariantMap result;
@@ -812,3 +834,22 @@ QVariantMap Version1Handler::update(Project *project, const QVariantMap &map)
 
     return result;
 }
+
+// -------------------------------------------------------------------------
+// Version2Handler
+// -------------------------------------------------------------------------
+
+QVariantMap Version2Handler::update(Project *, const QVariantMap &map)
+{
+    QList<Change> changes;
+    changes.append(qMakePair(QLatin1String("CMakeProjectManager.CMakeBuildConfiguration.UserEnvironmentChanges"),
+                             QLatin1String("ProjectExplorer.BuildConfiguration.UserEnvironmentChanges")));
+    changes.append(qMakePair(QLatin1String("CMakeProjectManager.CMakeBuildConfiguration.ClearSystemEnvironment"),
+                             QLatin1String("ProjectExplorer.BuildConfiguration.ClearSystemEnvironment")));
+    changes.append(qMakePair(QLatin1String("Qt4ProjectManager.Qt4BuildConfiguration.UserEnvironmentChanges"),
+                             QLatin1String("ProjectExplorer.BuildConfiguration.UserEnvironmentChanges")));
+    changes.append(qMakePair(QLatin1String("Qt4ProjectManager.Qt4BuildConfiguration.ClearSystemEnvironment"),
+                             QLatin1String("ProjectExplorer.BuildConfiguration.ClearSystemEnvironment")));
+
+    return renameKeys(changes, QVariantMap(map));
+}
diff --git a/src/plugins/projectexplorer/userfileaccessor.h b/src/plugins/projectexplorer/userfileaccessor.h
index 449aefc55107af96ffd5d86e41f3044186ae0189..f0df4e0347165ff526d06f2c546de24681af4589 100644
--- a/src/plugins/projectexplorer/userfileaccessor.h
+++ b/src/plugins/projectexplorer/userfileaccessor.h
@@ -47,6 +47,10 @@ public:
     virtual QString displayUserFileVersion() const = 0;
     // Update from userFileVersion() to userFileVersion() + 1
     virtual QVariantMap update(Project *project, const QVariantMap &map) = 0;
+
+protected:
+    typedef QPair<QLatin1String,QLatin1String> Change;
+    QVariantMap renameKeys(const QList<Change> &changes, QVariantMap map);
 };
 
 class UserFileAccessor
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index 4ca104c5edd474fd59fdf85c0389988b7e77e6bb..5254dab4af6dab76aeaac1966eae7a2ba1f21d08 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -46,8 +46,6 @@ namespace {
 const char * const QT4_BC_ID_PREFIX("Qt4ProjectManager.Qt4BuildConfiguration.");
 const char * const QT4_BC_ID("Qt4ProjectManager.Qt4BuildConfiguration");
 
-const char * const CLEAR_SYSTEM_ENVIRONMENT_KEY("Qt4ProjectManager.Qt4BuildConfiguration.ClearSystemEnvironment");
-const char * const USER_ENVIRONMENT_CHANGES_KEY("Qt4ProjectManager.Qt4BuildConfiguration.UserEnvironmentChanges");
 const char * const USE_SHADOW_BUILD_KEY("Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild");
 const char * const BUILD_DIRECTORY_KEY("Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory");
 const char * const TOOLCHAIN_KEY("Qt4ProjectManager.Qt4BuildConfiguration.ToolChain");
@@ -59,7 +57,6 @@ enum { debug = 0 };
 
 Qt4BuildConfiguration::Qt4BuildConfiguration(Qt4Target *target) :
     BuildConfiguration(target, QLatin1String(QT4_BC_ID)),
-    m_clearSystemEnvironment(false),
     m_shadowBuild(false),
     m_qtVersionId(-1),
     m_toolChainType(-1), // toolChainType() makes sure to return the default toolchainType
@@ -71,7 +68,6 @@ Qt4BuildConfiguration::Qt4BuildConfiguration(Qt4Target *target) :
 
 Qt4BuildConfiguration::Qt4BuildConfiguration(Qt4Target *target, const QString &id) :
     BuildConfiguration(target, id),
-    m_clearSystemEnvironment(false),
     m_shadowBuild(false),
     m_qtVersionId(-1),
     m_toolChainType(-1), // toolChainType() makes sure to return the default toolchainType
@@ -83,8 +79,6 @@ Qt4BuildConfiguration::Qt4BuildConfiguration(Qt4Target *target, const QString &i
 
 Qt4BuildConfiguration::Qt4BuildConfiguration(Qt4Target *target, Qt4BuildConfiguration *source) :
     BuildConfiguration(target, source),
-    m_clearSystemEnvironment(source->m_clearSystemEnvironment),
-    m_userEnvironmentChanges(source->m_userEnvironmentChanges),
     m_shadowBuild(source->m_shadowBuild),
     m_buildDirectory(source->m_buildDirectory),
     m_qtVersionId(source->m_qtVersionId),
@@ -103,8 +97,6 @@ Qt4BuildConfiguration::~Qt4BuildConfiguration()
 QVariantMap Qt4BuildConfiguration::toMap() const
 {
     QVariantMap map(BuildConfiguration::toMap());
-    map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), m_clearSystemEnvironment);
-    map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(m_userEnvironmentChanges));
     map.insert(QLatin1String(USE_SHADOW_BUILD_KEY), m_shadowBuild);
     map.insert(QLatin1String(BUILD_DIRECTORY_KEY), m_buildDirectory);
     map.insert(QLatin1String(QT_VERSION_ID_KEY), m_qtVersionId);
@@ -119,8 +111,6 @@ bool Qt4BuildConfiguration::fromMap(const QVariantMap &map)
     if (!BuildConfiguration::fromMap(map))
         return false;
 
-    m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
-    m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
     m_shadowBuild = map.value(QLatin1String(USE_SHADOW_BUILD_KEY), false).toBool();
     m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY)).toString();
     m_qtVersionId = map.value(QLatin1String(QT_VERSION_ID_KEY)).toInt();
@@ -179,14 +169,9 @@ Qt4Target *Qt4BuildConfiguration::qt4Target() const
     return static_cast<Qt4Target *>(target());
 }
 
-QString Qt4BuildConfiguration::baseEnvironmentText() const
-{
-    return useSystemEnvironment() ? tr("System Environment") : tr("Clean Environment");
-}
-
 ProjectExplorer::Environment Qt4BuildConfiguration::baseEnvironment() const
 {
-    Environment env = useSystemEnvironment() ? Environment::systemEnvironment() : Environment();
+    Environment env = BuildConfiguration::baseEnvironment();
     qtVersion()->addToEnvironment(env);
     ToolChain *tc = toolChain();
     if (tc)
@@ -194,39 +179,6 @@ ProjectExplorer::Environment Qt4BuildConfiguration::baseEnvironment() const
     return env;
 }
 
-ProjectExplorer::Environment Qt4BuildConfiguration::environment() const
-{
-    Environment env = baseEnvironment();
-    env.modify(userEnvironmentChanges());
-    return env;
-}
-
-void Qt4BuildConfiguration::setUseSystemEnvironment(bool b)
-{
-    if (useSystemEnvironment() == b)
-        return;
-    m_clearSystemEnvironment = !b;
-    emit environmentChanged();
-}
-
-bool Qt4BuildConfiguration::useSystemEnvironment() const
-{
-    return !m_clearSystemEnvironment;
-}
-
-QList<ProjectExplorer::EnvironmentItem> Qt4BuildConfiguration::userEnvironmentChanges() const
-{
-    return m_userEnvironmentChanges;
-}
-
-void Qt4BuildConfiguration::setUserEnvironmentChanges(const QList<ProjectExplorer::EnvironmentItem> &diff)
-{
-    if (m_userEnvironmentChanges == diff)
-        return;
-    m_userEnvironmentChanges = diff;
-    emit environmentChanged();
-}
-
 /// returns the build directory
 QString Qt4BuildConfiguration::buildDirectory() const
 {
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h
index 074b03105984cf254d6603bfbcb6094c38191f07..f17320a2b348cf97a32c3eb166dbb5cfcba314ee 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h
@@ -57,13 +57,7 @@ public:
 
     Qt4Target *qt4Target() const;
 
-    ProjectExplorer::Environment environment() const;
-    ProjectExplorer::Environment baseEnvironment() const;
-    QString baseEnvironmentText() const;
-    void setUserEnvironmentChanges(const QList<ProjectExplorer::EnvironmentItem> &diff);
-    QList<ProjectExplorer::EnvironmentItem> userEnvironmentChanges() const;
-    bool useSystemEnvironment() const;
-    void setUseSystemEnvironment(bool b);
+    virtual ProjectExplorer::Environment baseEnvironment() const;
 
     virtual QString buildDirectory() const;
     bool shadowBuild() const;
@@ -138,8 +132,6 @@ private:
     void ctor();
     void pickValidQtVersion();
 
-    bool m_clearSystemEnvironment;
-    QList<ProjectExplorer::EnvironmentItem> m_userEnvironmentChanges;
     bool m_shadowBuild;
     QString m_buildDirectory;
     int m_qtVersionId;
diff --git a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp
deleted file mode 100644
index d219803f83daca342aa84ef5157c75859e6a36b8..0000000000000000000000000000000000000000
--- a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at http://qt.nokia.com/contact.
-**
-**************************************************************************/
-
-#include "qt4buildenvironmentwidget.h"
-#include "qt4project.h"
-#include "qt4buildconfiguration.h"
-
-#include <projectexplorer/environmenteditmodel.h>
-#include <utils/qtcassert.h>
-
-#include <QtGui/QCheckBox>
-
-namespace {
-bool debug = false;
-}
-
-using namespace Qt4ProjectManager;
-using namespace Qt4ProjectManager::Internal;
-
-Qt4BuildEnvironmentWidget::Qt4BuildEnvironmentWidget(Qt4Project *project)
-    : BuildConfigWidget(), m_pro(project), m_buildConfiguration(0)
-{
-    QVBoxLayout *vbox = new QVBoxLayout(this);
-    vbox->setMargin(0);
-
-    m_clearSystemEnvironmentCheckBox = new QCheckBox(this);
-    m_clearSystemEnvironmentCheckBox->setText(tr("Clear system environment"));
-
-    m_buildEnvironmentWidget = new ProjectExplorer::EnvironmentWidget(this, m_clearSystemEnvironmentCheckBox);
-    vbox->addWidget(m_buildEnvironmentWidget);
-
-    connect(m_buildEnvironmentWidget, SIGNAL(userChangesChanged()),
-            this, SLOT(environmentModelUserChangesUpdated()));
-
-    connect(m_clearSystemEnvironmentCheckBox, SIGNAL(toggled(bool)),
-            this, SLOT(clearSystemEnvironmentCheckBoxClicked(bool)));
-}
-
-QString Qt4BuildEnvironmentWidget::displayName() const
-{
-    return tr("Build Environment");
-}
-
-void Qt4BuildEnvironmentWidget::init(ProjectExplorer::BuildConfiguration *bc)
-{
-    QTC_ASSERT(bc, return);
-
-    if (debug)
-        qDebug() << "Qt4BuildConfigWidget::init()";
-
-    if (m_buildConfiguration) {
-        disconnect(m_buildConfiguration, SIGNAL(environmentChanged()),
-                   this, SLOT(environmentChanged()));
-    }
-
-    m_buildConfiguration = static_cast<Qt4BuildConfiguration *>(bc);
-
-    if (!m_buildConfiguration) {
-        setEnabled(false);
-        return;
-    }
-    setEnabled(true);
-
-    connect(m_buildConfiguration, SIGNAL(environmentChanged()),
-            this, SLOT(environmentChanged()));
-
-    m_clearSystemEnvironmentCheckBox->setChecked(!m_buildConfiguration->useSystemEnvironment());
-    m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment());
-    m_buildEnvironmentWidget->setBaseEnvironmentText(m_buildConfiguration->baseEnvironmentText());
-    m_buildEnvironmentWidget->setUserChanges(m_buildConfiguration->userEnvironmentChanges());
-    m_buildEnvironmentWidget->updateButtons();
-}
-
-void Qt4BuildEnvironmentWidget::environmentModelUserChangesUpdated()
-{
-    m_buildConfiguration->setUserEnvironmentChanges(m_buildEnvironmentWidget->userChanges());
-}
-
-void Qt4BuildEnvironmentWidget::clearSystemEnvironmentCheckBoxClicked(bool checked)
-{
-    m_buildConfiguration->setUseSystemEnvironment(!checked);
-    m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment());
-    m_buildEnvironmentWidget->setBaseEnvironmentText(m_buildConfiguration->baseEnvironmentText());
-}
-
-void Qt4BuildEnvironmentWidget::environmentChanged()
-{
-    m_buildEnvironmentWidget->setBaseEnvironment(m_buildConfiguration->baseEnvironment());
-    m_buildEnvironmentWidget->setBaseEnvironmentText(m_buildConfiguration->baseEnvironmentText());
-}
diff --git a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.h b/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.h
deleted file mode 100644
index da48c85df1c9925f6faf166ab0f8f317f4beb6f3..0000000000000000000000000000000000000000
--- a/src/plugins/qt4projectmanager/qt4buildenvironmentwidget.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at http://qt.nokia.com/contact.
-**
-**************************************************************************/
-
-#ifndef QT4BUILDENVIRONMENTWIDGET_H
-#define QT4BUILDENVIRONMENTWIDGET_H
-
-#include <projectexplorer/buildstep.h>
-
-QT_BEGIN_NAMESPACE
-class QCheckBox;
-QT_END_NAMESPACE
-
-namespace ProjectExplorer {
-class EnvironmentWidget;
-}
-
-namespace Qt4ProjectManager {
-
-class Qt4Project;
-
-namespace Internal {
-class Qt4BuildConfiguration;
-
-class Qt4BuildEnvironmentWidget : public ProjectExplorer::BuildConfigWidget
-{
-    Q_OBJECT
-
-public:
-    Qt4BuildEnvironmentWidget(Qt4Project *project);
-
-    QString displayName() const;
-    void init(ProjectExplorer::BuildConfiguration *bc);
-
-private slots:
-    void environmentModelUserChangesUpdated();
-    void clearSystemEnvironmentCheckBoxClicked(bool checked);
-    void environmentChanged();
-
-private:
-    ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget;
-    QCheckBox *m_clearSystemEnvironmentCheckBox;
-    Qt4Project *m_pro;
-    Qt4BuildConfiguration *m_buildConfiguration;
-};
-
-} // namespace Internal
-} // namespace Qt4ProjectManager
-
-#endif // QT4BUILDENVIRONMENTWIDGET_H
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 5b187c98657b5fc23981683846fa8d1f90253fdc..5e20f185d3848023920de70587b6e145faf6eb3a 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -36,7 +36,6 @@
 #include "qt4runconfiguration.h"
 #include "qt4nodes.h"
 #include "qt4projectconfigwidget.h"
-#include "qt4buildenvironmentwidget.h"
 #include "qt4projectmanagerconstants.h"
 #include "projectloadwizard.h"
 #include "qt4buildconfiguration.h"
@@ -46,6 +45,7 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <extensionsystem/pluginmanager.h>
+#include <projectexplorer/buildenvironmentwidget.h>
 #include <projectexplorer/customexecutablerunconfiguration.h>
 #include <projectexplorer/nodesvisitor.h>
 #include <projectexplorer/project.h>
@@ -933,7 +933,7 @@ BuildConfigWidget *Qt4Project::createConfigWidget()
 QList<BuildConfigWidget*> Qt4Project::subConfigWidgets()
 {
     QList<BuildConfigWidget*> subWidgets;
-    subWidgets << new Qt4BuildEnvironmentWidget(this);
+    subWidgets << new BuildEnvironmentWidget;
     return subWidgets;
 }
 
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.pro b/src/plugins/qt4projectmanager/qt4projectmanager.pro
index 74aea3cdb5bddc4b8caa233fd78ed505ea5668ea..d11288f2db6907bc1c74636b4227019f520a10b7 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.pro
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.pro
@@ -34,7 +34,6 @@ HEADERS += qt4projectmanagerplugin.h \
     qt4runconfiguration.h \
     qtmodulesinfo.h \
     qt4projectconfigwidget.h \
-    qt4buildenvironmentwidget.h \
     projectloadwizard.h \
     qtversionmanager.h \
     qtoptionspage.h \
@@ -75,7 +74,6 @@ SOURCES += qt4projectmanagerplugin.cpp \
     qt4runconfiguration.cpp \
     qtmodulesinfo.cpp \
     qt4projectconfigwidget.cpp \
-    qt4buildenvironmentwidget.cpp \
     projectloadwizard.cpp \
     qtversionmanager.cpp \
     qtoptionspage.cpp \