diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc
index 68dc857c0ae0a0e907163d271006dd205d4ae3eb..00a0d087f400caf89c08a0a03e3d354cdd92c621 100644
--- a/doc/qtcreator.qdoc
+++ b/doc/qtcreator.qdoc
@@ -231,7 +231,7 @@
                 To deselect, use \key{Ctrl+Shift+U}.    
         \row
             \i  Moving lines up and down
-            \i
+            \i  
 
         \row
             \i  Completion
@@ -246,7 +246,17 @@
 
         \row
             \i  Switch between Header and Source
-            \i
+            \i  Use \key{F4}.
+
+        \row
+            \i  Increasing and Decreasing Font Size
+            \i  Use \key{Ctrl+Scroll Wheel}
+
+        \row
+            \i  Follow Symbols under The Cursor
+            \i  Use \key{F2} and \key{Shift+F2}. This feature works with
+                namespaces, classes, methods, variables, include statements,
+                and macros.
     \endtable
 
 
@@ -256,12 +266,6 @@
 
     Up/Down/Page Up/Page Down - hold ctrl to prevent the cursor from moving
 
-    F2 and Shift F2 - follows symbols under the cursor (works for namespaces, classes, methods, variables, includes, macros).
-
-    F4 - switch header and source
-
-    Ctrl + Scroll wheel -- used to quickly change the font size (handy for presentatiaons)
-
 
 
     To switch to an external editor, select \gui{Open in external editor} from
@@ -270,15 +274,9 @@
 */
 
 
-/*!
-
-*/
-
-
-
 /*!
     \contentspage index.html
-    \previouspage creator-editor-settings.html
+    \previouspage creator-code-editor.html
     \page creator-build-settings.html
     \nextpage creator-creating-project.html
 
@@ -840,8 +838,8 @@
     \section2 Viewing Versioning History and Change Details
 
     The versioning history of a file can be displayed by selecting the
-    \gui{Log} (for \bold{git}) or \gui{Filelog (for \bold{Perforce} and
-    \bold{Subversion})} option. Typically, the log output will contain the
+    \gui{Log} (for \bold{git}) or \gui{Filelog} (for \bold{Perforce} and
+    \bold{Subversion}) option. Typically, the log output will contain the
     date, the commit message, and a change or revision identifier. If you
     click on the identifier, a description of the change including the diff
     will be displayed.
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 65bf70fe584a8668b134a6329c6cbf2265ba8d4f..0f5029c8eaf1bc68675ef4b44a66fe454b5e7e10 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -80,9 +80,9 @@ CMakeProject::~CMakeProject()
 // TODO make this function work even if it is reparsing
 void CMakeProject::parseCMakeLists(const QDir &directory)
 {
-    createCbpFile(directory);
+    createCbpFile(buildDirectory(QString()));
 
-    QString cbpFile = findCbpFile(directory);
+    QString cbpFile = findCbpFile(buildDirectory(QString()));
 
     CMakeCbpParser cbpparser;
     qDebug()<<"Parsing file "<<cbpFile;
@@ -153,9 +153,10 @@ void CMakeProject::createCbpFile(const QDir &directory)
 
     // TODO we need to pass on the same paremeters as the cmakestep
     qDebug()<<"Creating cbp file";
+    directory.mkpath(directory.absolutePath());
     QProcess cmake;
     cmake.setWorkingDirectory(directory.absolutePath());
-    cmake.start("cmake", QStringList() << "-GCodeBlocks - Unix Makefiles");
+    cmake.start("cmake", QStringList() << ".." << "-GCodeBlocks - Unix Makefiles");
     cmake.waitForFinished(-1);
     qDebug()<<"cmake output: \n"<<cmake.readAll();
 }
@@ -240,7 +241,7 @@ QString CMakeProject::buildDirectory(const QString &buildConfiguration) const
 {
     QString buildDirectory = value(buildConfiguration, "buildDirectory").toString();
     if (buildDirectory.isEmpty())
-        buildDirectory = QFileInfo(m_fileName).absolutePath();
+        buildDirectory = QFileInfo(m_fileName).absolutePath() + "/qtcreator-build";
     return buildDirectory;
 }
 
@@ -523,7 +524,7 @@ void CMakeCbpParser::parseTargetOption()
 {
     if (attributes().hasAttribute("output"))
         m_target.executable = attributes().value("output").toString();
-    else if (attributes().hasAttribute("type") && attributes().value("type") == "1")
+    else if (attributes().hasAttribute("type") && (attributes().value("type") == "1" || attributes().value("type") == "0"))
         m_targetType = true;
     else if (attributes().hasAttribute("working_dir"))
         m_target.workingDirectory = attributes().value("working_dir").toString();
diff --git a/src/plugins/coreplugin/coreimpl.cpp b/src/plugins/coreplugin/coreimpl.cpp
index 68653b52fc7a7a5e963822e516350cef4e92de7a..63521ce6f0ac4a90b1a65abbeb0dcf2414fdb363 100644
--- a/src/plugins/coreplugin/coreimpl.cpp
+++ b/src/plugins/coreplugin/coreimpl.cpp
@@ -190,3 +190,4 @@ void CoreImpl::openFiles(const QStringList &arguments)
 {
     m_mainwindow->openFiles(arguments);
 }
+
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index c6cb624fb86bcc68d1bac08a803dc8049de768cd..5e41913db026ed37aeb7cce03ed6915458055849 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -521,6 +521,9 @@ bool ProjectExplorerPlugin::initialize(const QStringList & /*arguments*/, QStrin
     cmd = am->registerAction(m_runAction, Constants::RUN, globalcontext);
     cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+R")));
     mbuild->addAction(cmd, Constants::G_BUILD_RUN);
+
+    m_runActionContextMenu = new QAction(runIcon, tr("Run"), this);
+    cmd = am->registerAction(m_runActionContextMenu, Constants::RUNCONTEXTMENU, globalcontext);
     mproject->addAction(cmd, Constants::G_PROJECT_RUN);
 
     Core::ActionContainer *mrc = am->createMenu(Constants::RUNCONFIGURATIONMENU);
@@ -616,6 +619,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList & /*arguments*/, QStrin
     connect(m_cleanAction, SIGNAL(triggered()), this, SLOT(cleanProject()));
     connect(m_cleanSessionAction, SIGNAL(triggered()), this, SLOT(cleanSession()));
     connect(m_runAction, SIGNAL(triggered()), this, SLOT(runProject()));
+    connect(m_runActionContextMenu, SIGNAL(triggered()), this, SLOT(runProjectContextMenu()));
     connect(m_cancelBuildAction, SIGNAL(triggered()), this, SLOT(cancelBuild()));
     connect(m_debugAction, SIGNAL(triggered()), this, SLOT(debugProject()));
     connect(m_dependenciesAction, SIGNAL(triggered()), this, SLOT(editDependencies()));
@@ -1348,7 +1352,16 @@ void ProjectExplorerPlugin::cleanSession()
 
 void ProjectExplorerPlugin::runProject()
 {
-    Project *pro = startupProject();
+    runProjectImpl(startupProject());
+}
+
+void ProjectExplorerPlugin::runProjectContextMenu()
+{
+    runProjectImpl(m_currentProject);
+}
+
+void ProjectExplorerPlugin::runProjectImpl(Project *pro)
+{
     if (!pro)
         return;
 
@@ -1434,10 +1447,14 @@ IRunConfigurationRunner *ProjectExplorerPlugin::findRunner(QSharedPointer<RunCon
 void ProjectExplorerPlugin::updateRunAction()
 {
     const Project *project = startupProject();
-    const bool canRun = project && findRunner(project->activeRunConfiguration(), ProjectExplorer::Constants::RUNMODE);
+    bool canRun = project && findRunner(project->activeRunConfiguration(), ProjectExplorer::Constants::RUNMODE);
     const bool canDebug = project && !m_debuggingRunControl && findRunner(project->activeRunConfiguration(), ProjectExplorer::Constants::DEBUGMODE);
     const bool building = m_buildManager->isBuilding();
     m_runAction->setEnabled(canRun && !building);
+
+    canRun = m_currentProject && findRunner(m_currentProject->activeRunConfiguration(), ProjectExplorer::Constants::RUNMODE);
+    m_runActionContextMenu->setEnabled(canRun && !building);
+
     m_debugAction->setEnabled(canDebug && !building);
 }
 
diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h
index 1d270226d1ae1c370634be30a06fcd4720f698d3..ff58e7ba8c667c25e369bf221c45ede7bbd3d78e 100644
--- a/src/plugins/projectexplorer/projectexplorer.h
+++ b/src/plugins/projectexplorer/projectexplorer.h
@@ -156,6 +156,7 @@ private slots:
     void restoreSession();
     void loadSession(const QString &session);
     void runProject();
+    void runProjectContextMenu();
     void savePersistentSettings();
     void goToTaskWindow();
 
@@ -188,6 +189,7 @@ private slots:
     void currentModeChanged(Core::IMode *mode);
 
 private:
+    void runProjectImpl(Project *pro);
     void setCurrent(Project *project, QString filePath, Node *node);
 
     QStringList allFilesWithDependencies(Project *pro);
@@ -223,6 +225,7 @@ private:
     QAction *m_cleanAction;
     QAction *m_cleanSessionAction;
     QAction *m_runAction;
+    QAction *m_runActionContextMenu;
     QAction *m_cancelBuildAction;
     QAction *m_debugAction;
     QAction *m_dependenciesAction;
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index ef745e69c908961666a8dc1815e2fafdf4099cca..e65ca54d099524d1f114829786d46f61f58a523b 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -57,6 +57,7 @@ const char * const BUILDCONFIGURATIONMENU = "ProjectExplorer.BuildConfigurationM
 const char * const CANCELBUILD          = "ProjectExplorer.CancelBuild";
 const char * const RUNCONFIGURATIONMENU = "ProjectExplorer.RunConfigurationMenu";
 const char * const RUN                  = "ProjectExplorer.Run";
+const char * const RUNCONTEXTMENU       = "ProjectExplorer.RunContextMenu";
 const char * const STOP                 = "ProjectExplorer.Stop";
 const char * const DEBUG                = "ProjectExplorer.Debug";
 const char * const DEPENDENCIES         = "ProjectExplorer.Dependencies";
diff --git a/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp b/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp
index 49d8ccd8a30b8fae206084f729fca3d942663e92..fcbff3f5dcc7628ca43e40bc4a2fd15790270ad8 100644
--- a/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp
+++ b/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp
@@ -62,72 +62,105 @@ bool GdbMacrosBuildStep::init(const QString &buildConfiguration)
 
 void GdbMacrosBuildStep::run(QFutureInterface<bool> & fi)
 {
-    // TODO CONFIG handling
+    QVariant v = value("clean");
+    if (v.isNull() || v.toBool() == false) {
+        // Normal run
+        QString dumperPath = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>()
+                    ->resourcePath() + "/gdbmacros/";
+        QStringList files;
+        files << "gdbmacros.cpp"
+              << "gdbmacros.pro";
+
+
+        QString destDir = m_buildDirectory + "/qtc-gdbmacros/";
+        QDir dir;
+        dir.mkpath(destDir);
+        foreach (const QString &file, files) {
+            QFile destination(destDir + file);
+            if (destination.exists())
+                destination.remove();
+            QFile::copy(dumperPath + file, destDir + file);
+        }
 
-    QString dumperPath = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>()
-                ->resourcePath() + "/gdbmacros/";
-    QStringList files;
-    files << "gdbmacros.cpp"
-          << "gdbmacros.pro";
+        Qt4Project *qt4Project = static_cast<Qt4Project *>(project());
+
+        QProcess qmake;
+        qmake.setEnvironment(qt4Project->environment(m_buildConfiguration).toStringList());
+        qmake.setWorkingDirectory(destDir);
+        QStringList configarguments;
+        QStringList makeArguments;
+
+        // Find qmake step...
+        QMakeStep *qmakeStep = qt4Project->qmakeStep();
+        // Find out which configuration is used in this build configuration
+        // and what kind of CONFIG we need to pass to qmake for that
+        if (qmakeStep->value(m_buildConfiguration, "buildConfiguration").isValid()) {
+            QtVersion::QmakeBuildConfig defaultBuildConfiguration = qt4Project->qtVersion(m_buildConfiguration)->defaultBuildConfig();
+            QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(qmakeStep->value(m_buildConfiguration, "buildConfiguration").toInt());
+            if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll))
+                configarguments << "CONFIG-=debug_and_release";
+            if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (projectBuildConfiguration & QtVersion::BuildAll))
+                configarguments << "CONFIG+=debug_and_release";
+            if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(projectBuildConfiguration & QtVersion::DebugBuild))
+                configarguments << "CONFIG+=release";
+            if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (projectBuildConfiguration & QtVersion::DebugBuild))
+                configarguments << "CONFIG+=debug";
+            if (projectBuildConfiguration & QtVersion::BuildAll)
+                makeArguments << (projectBuildConfiguration & QtVersion::DebugBuild ? "debug" : "release");
+
+        } else {
+            // Old style with CONFIG+=debug_and_release
+            configarguments << "CONFIG+=debug_and_release";
+            const MakeStep *ms = qt4Project->makeStep();
+            QStringList makeargs = ms->value(m_buildConfiguration, "makeargs").toStringList();
+            if (makeargs.contains("debug")) {
+                makeArguments <<  "debug";
+            } else if (makeargs.contains("release")) {
+                makeArguments << "release";
+            }
+        }
 
+        QString mkspec = qt4Project->qtVersion(m_buildConfiguration)->mkspec();
+        qmake.start(m_qmake, QStringList()<<"-spec"<<mkspec<<configarguments<<"gdbmacros.pro");
+        qmake.waitForFinished();
 
-    QString destDir = m_buildDirectory + "/qtc-gdbmacros/";
-    QDir dir;
-    dir.mkpath(destDir);
-    foreach (const QString &file, files) {
-        QFile destination(destDir + file);
-        if (destination.exists())
-            destination.remove();
-        QFile::copy(dumperPath + file, destDir + file);
-    }
 
-    Qt4Project *qt4Project = static_cast<Qt4Project *>(project());
-
-    QProcess qmake;
-    qmake.setEnvironment(qt4Project->environment(m_buildConfiguration).toStringList());
-    qmake.setWorkingDirectory(destDir);
-    QStringList configarguments;
-    QStringList makeArguments;
-
-    // Find qmake step...
-    QMakeStep *qmakeStep = qt4Project->qmakeStep();
-    // Find out which configuration is used in this build configuration
-    // and what kind of CONFIG we need to pass to qmake for that
-    if (qmakeStep->value(m_buildConfiguration, "buildConfiguration").isValid()) {
-        QtVersion::QmakeBuildConfig defaultBuildConfiguration = qt4Project->qtVersion(m_buildConfiguration)->defaultBuildConfig();
-        QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(qmakeStep->value(m_buildConfiguration, "buildConfiguration").toInt());
-        if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll))
-            configarguments << "CONFIG-=debug_and_release";
-        if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (projectBuildConfiguration & QtVersion::BuildAll))
-            configarguments << "CONFIG+=debug_and_release";
-        if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(projectBuildConfiguration & QtVersion::DebugBuild))
-            configarguments << "CONFIG+=release";
-        if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (projectBuildConfiguration & QtVersion::DebugBuild))
-            configarguments << "CONFIG+=debug";
-        if (projectBuildConfiguration & QtVersion::BuildAll)
-            makeArguments << (projectBuildConfiguration & QtVersion::DebugBuild ? "debug" : "release");
+        qmake.start(qt4Project->qtVersion(m_buildConfiguration)->makeCommand(), makeArguments);
+        qmake.waitForFinished();
 
+        fi.reportResult(true);
     } else {
-        // Old style with CONFIG+=debug_and_release
-        configarguments << "CONFIG+=debug_and_release";
-        const MakeStep *ms = qt4Project->makeStep();
-        QStringList makeargs = ms->value(m_buildConfiguration, "makeargs").toStringList();
-        if (makeargs.contains("debug")) {
-            makeArguments <<  "debug";
-        } else if (makeargs.contains("release")) {
-            makeArguments << "release";
+        // Clean step, we want to remove the directory
+        QString destDir = m_buildDirectory + "/qtc-gdbmacros/";
+        Qt4Project *qt4Project = static_cast<Qt4Project *>(project());
+
+        QProcess make;
+        make.setEnvironment(qt4Project->environment(m_buildConfiguration).toStringList());
+        make.setWorkingDirectory(destDir);
+        make.start(qt4Project->qtVersion(m_buildConfiguration)->makeCommand(), QStringList()<<"distclean");
+        make.waitForFinished();
+
+        QStringList files;
+        files << "gdbmacros.cpp"
+              << "gdbmacros.pro";
+
+        QStringList directories;
+        directories << "debug"
+                    << "release";
+
+        foreach(const QString &file, files) {
+            QFile destination(destDir + file);
+            destination.remove();
         }
-    }
-
-    QString mkspec = qt4Project->qtVersion(m_buildConfiguration)->mkspec();
-    qmake.start(m_qmake, QStringList()<<"-spec"<<mkspec<<configarguments<<"gdbmacros.pro");
-    qmake.waitForFinished();
 
+        foreach(const QString &dir, directories) {
+            QDir destination(destDir + dir);
+            destination.rmdir(destDir + dir);
+        }
 
-    qmake.start(qt4Project->qtVersion(m_buildConfiguration)->makeCommand(), makeArguments);
-    qmake.waitForFinished();
-
-    fi.reportResult(true);
+        QDir(destDir).rmdir(destDir);
+        fi.reportResult(true);
+    }
 }
 
 QString GdbMacrosBuildStep::name()
diff --git a/src/plugins/qt4projectmanager/qt4buildconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4buildconfigwidget.cpp
index de7141b0794a2957808383ef6b7a5e725560cd07..0a53b99b62d37dc632f86546650619c2c84fbd26 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfigwidget.cpp
@@ -38,6 +38,9 @@
 #include "qt4project.h"
 #include "qt4projectmanager.h"
 #include "ui_qt4buildconfigwidget.h"
+#include <extensionsystem/pluginmanager.h>
+#include <coreplugin/mainwindow.h>
+#include "qt4projectmanagerconstants.h"
 
 #include <QtGui/QFileDialog>
 
@@ -76,9 +79,11 @@ Qt4BuildConfigWidget::Qt4BuildConfigWidget(Qt4Project *project)
     connect(m_ui->importLabel, SIGNAL(linkActivated(QString)),
             this, SLOT(importLabelClicked()));
 
+    connect(m_ui->manageQtVersionPushButtons, SIGNAL(clicked()),
+            this, SLOT(manageQtVersions()));
+
     connect(m_pro->qt4ProjectManager()->versionManager(), SIGNAL(qtVersionsChanged()),
             this, SLOT(setupQtVersionsComboBox()));
-
 }
 
 Qt4BuildConfigWidget::~Qt4BuildConfigWidget()
@@ -86,6 +91,13 @@ Qt4BuildConfigWidget::~Qt4BuildConfigWidget()
     delete m_ui;
 }
 
+void Qt4BuildConfigWidget::manageQtVersions()
+{
+    Core::ICore *core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>();
+    core->showOptionsDialog(Constants::QT_CATEGORY, Constants::QTVERSION_PAGE);
+}
+
+
 QString Qt4BuildConfigWidget::displayName() const
 {
     return tr("General");
diff --git a/src/plugins/qt4projectmanager/qt4buildconfigwidget.h b/src/plugins/qt4projectmanager/qt4buildconfigwidget.h
index 5e584fa149f4f52b6c2c894ab6b75b51b6c3c298..47f19be95e4eb286a1ccaab8694b91efe62b6b8e 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfigwidget.h
+++ b/src/plugins/qt4projectmanager/qt4buildconfigwidget.h
@@ -64,6 +64,7 @@ private slots:
     void shadowBuildLineEditTextChanged();
     void importLabelClicked();
     void qtVersionComboBoxCurrentIndexChanged(const QString &);
+    void manageQtVersions();
 
 private:
     Ui::Qt4BuildConfigWidget *m_ui;
diff --git a/src/plugins/qt4projectmanager/qt4buildconfigwidget.ui b/src/plugins/qt4projectmanager/qt4buildconfigwidget.ui
index ab5e8858611fa5ab5340d2d8bb897973169d3fe7..7ce0d1950d19a658dacb394fd61ab8a5d8a3830c 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfigwidget.ui
+++ b/src/plugins/qt4projectmanager/qt4buildconfigwidget.ui
@@ -61,6 +61,13 @@
          </property>
         </widget>
        </item>
+       <item>
+        <widget class="QPushButton" name="manageQtVersionPushButtons">
+         <property name="text">
+          <string>Manage Qt Versions</string>
+         </property>
+        </widget>
+       </item>
        <item>
         <widget class="QLabel" name="invalidQtWarningLabel">
          <property name="text">
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 7af448e233173f92f0ef9bd97459eef0f8dca814..611d4930b407c062d9ed982442e521eb48440fd4 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -610,9 +610,13 @@ void Qt4Project::addDefaultBuild()
         makeStep = new MakeStep(this);
         insertBuildStep(2, makeStep);
 
+        GdbMacrosBuildStep *gdbmacrosCleanStep = new GdbMacrosBuildStep(this);
+        gdbmacrosCleanStep->setValue("clean", true);
+        insertCleanStep(0, gdbmacrosCleanStep);
+
         MakeStep* cleanStep = new MakeStep(this);
         cleanStep->setValue("clean", true);
-        insertCleanStep(0, cleanStep);
+        insertCleanStep(1, cleanStep);
 
         ProjectLoadWizard wizard(this);
         wizard.execDialog();
@@ -629,6 +633,10 @@ void Qt4Project::addDefaultBuild()
             if (v.isValid() && v.toBool()) {
                 GdbMacrosBuildStep *gdbmacrostep = new GdbMacrosBuildStep(this);
                 insertBuildStep(0, gdbmacrostep);
+
+                GdbMacrosBuildStep *gdbmacrosCleanStep = new GdbMacrosBuildStep(this);
+                gdbmacrosCleanStep ->setValue("clean", true);
+                insertCleanStep(0, gdbmacrosCleanStep );
                 break;
             }
         }