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";