diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp
index a1a3b1dc9692b5c47ca942fc331cef6865e27fbb..597a6daba6ee7c2266d38c96b29b75668dda7fdc 100644
--- a/src/plugins/projectexplorer/outputwindow.cpp
+++ b/src/plugins/projectexplorer/outputwindow.cpp
@@ -35,6 +35,9 @@
 #include "projectexplorerconstants.h"
 #include "runconfiguration.h"
 
+#include <coreplugin/actionmanager/actionmanagerinterface.h>
+#include <coreplugin/coreconstants.h>
+#include <coreplugin/icore.h>
 #include <find/basetextfind.h>
 #include <aggregation/aggregate.h>
 
@@ -52,70 +55,8 @@
 using namespace ProjectExplorer::Internal;
 using namespace ProjectExplorer;
 
-bool OutputPane::hasFocus()
-{
-    return m_tabWidget->currentWidget() && m_tabWidget->currentWidget()->hasFocus();
-}
-
-bool OutputPane::canFocus()
-{
-    return m_tabWidget->currentWidget();
-}
-
-void OutputPane::setFocus()
-{
-    if (m_tabWidget->currentWidget())
-        m_tabWidget->currentWidget()->setFocus();
-}
-
-void OutputPane::appendOutput(const QString &/*out*/)
-{
-    // This function is in the interface, since we can't do anything sensible here, we don't do anything here.
-}
-
-void OutputPane::appendOutput(RunControl *rc, const QString &out)
-{
-    OutputWindow *ow = m_outputWindows.value(rc);
-    ow->appendOutput(out);
-}
-
-void OutputPane::showTabFor(RunControl *rc)
-{
-    OutputWindow *ow = m_outputWindows.value(rc);
-    m_tabWidget->setCurrentWidget(ow);
-}
-
-void OutputPane::stopRunControl()
-{
-    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
-    rc->stop();
-}
-
-void OutputPane::reRunRunControl()
-{
-    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
-    if (rc->runConfiguration()->project() != 0)
-        rc->start();
-}
-
-void OutputPane::closeTab(int index)
-{
-    OutputWindow *ow = static_cast<OutputWindow *>(m_tabWidget->widget(index));
-    RunControl *rc = m_outputWindows.key(ow);
-
-    if (rc->isRunning()) {
-        QString msg = tr("The application is still running. Close it first.");
-        QMessageBox::critical(0, tr("Unable to close"), msg);
-        return;
-    }
-
-    m_tabWidget->removeTab(index);
-    delete ow;
-    delete rc;
-}
-
-OutputPane::OutputPane()
-        : m_mainWidget(new QWidget)
+OutputPane::OutputPane(Core::ICore *core)
+    : m_mainWidget(new QWidget)
 {
 //     m_insertLineButton = new QToolButton;
 //     m_insertLineButton->setIcon(QIcon(ProjectExplorer::Constants::ICON_INSERT_LINE));
@@ -127,7 +68,7 @@ OutputPane::OutputPane()
     QIcon runIcon(Constants::ICON_RUN);
     runIcon.addFile(Constants::ICON_RUN_SMALL);
 
-    //Rerun
+    // Rerun
     m_reRunButton = new QToolButton;
     m_reRunButton->setIcon(runIcon);
     m_reRunButton->setToolTip(tr("Rerun this runconfiguration"));
@@ -136,13 +77,23 @@ OutputPane::OutputPane()
     connect(m_reRunButton, SIGNAL(clicked()),
             this, SLOT(reRunRunControl()));
 
-    //Stop
+    // Stop
+    Core::ActionManagerInterface *am = core->actionManager();
+    QList<int> globalcontext;
+    globalcontext.append(Core::Constants::C_GLOBAL_ID);
+
+    m_stopAction = new QAction(QIcon(Constants::ICON_STOP), tr("Stop"), this);
+    m_stopAction->setToolTip(tr("Stop"));
+    m_stopAction->setEnabled(false);
+
+    Core::ICommand *cmd = am->registerAction(m_stopAction, Constants::STOP, globalcontext);
+    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+R")));
+
     m_stopButton = new QToolButton;
-    m_stopButton->setIcon(QIcon(Constants::ICON_STOP));
-    m_stopButton->setToolTip(tr("Stop"));
+    m_stopButton->setDefaultAction(cmd->action());
     m_stopButton->setAutoRaise(true);
-    m_stopButton->setEnabled(false);
-    connect(m_stopButton, SIGNAL(clicked()),
+
+    connect(m_stopAction, SIGNAL(triggered()),
             this, SLOT(stopRunControl()));
 
     // Spacer (?)
@@ -173,21 +124,57 @@ OutputPane::~OutputPane()
     delete m_mainWidget;
 }
 
-void OutputPane::projectRemoved()
+QWidget *OutputPane::outputWidget(QWidget *)
 {
-    tabChanged(m_tabWidget->currentIndex());
+    return m_mainWidget;
 }
 
-void OutputPane::tabChanged(int i)
+QList<QWidget*> OutputPane::toolBarWidgets(void) const
 {
-    if (i == -1) {
-        m_stopButton->setEnabled(false);
-        m_reRunButton->setEnabled(false);
-    } else {
-        RunControl *rc = runControlForTab(i);
-        m_stopButton->setEnabled(rc->isRunning());
-        m_reRunButton->setEnabled(!rc->isRunning() && rc->runConfiguration()->project());
-    }
+    return QList<QWidget*>() << m_reRunButton << m_stopButton
+            ; // << m_insertLineButton;
+}
+
+QString OutputPane::name() const
+{
+    return tr("Application Output");
+}
+
+int OutputPane::priorityInStatusBar() const
+{
+    return 60;
+}
+
+void OutputPane::clearContents()
+{
+    OutputWindow *currentWindow = qobject_cast<OutputWindow *>(m_tabWidget->currentWidget());
+    if (currentWindow)
+        currentWindow->clear();
+}
+
+void OutputPane::visibilityChanged(bool /* b */)
+{
+}
+
+bool OutputPane::hasFocus()
+{
+    return m_tabWidget->currentWidget() && m_tabWidget->currentWidget()->hasFocus();
+}
+
+bool OutputPane::canFocus()
+{
+    return m_tabWidget->currentWidget();
+}
+
+void OutputPane::setFocus()
+{
+    if (m_tabWidget->currentWidget())
+        m_tabWidget->currentWidget()->setFocus();
+}
+
+void OutputPane::appendOutput(const QString &/*out*/)
+{
+    // This function is in the interface, since we can't do anything sensible here, we don't do anything here.
 }
 
 void OutputPane::createNewOutputWindow(RunControl *rc)
@@ -195,11 +182,11 @@ void OutputPane::createNewOutputWindow(RunControl *rc)
     connect(rc, SIGNAL(started()),
             this, SLOT(runControlStarted()));
     connect(rc, SIGNAL(finished()),
-            this, SLOT(runControlFinished()));    
-    
+            this, SLOT(runControlFinished()));
+
     // First look if we can reuse a tab
     bool found = false;
-    for (int i=0; i<m_tabWidget->count(); ++i) {
+    for (int i = 0; i < m_tabWidget->count(); ++i) {
         RunControl *old = runControlForTab(i);
         if (old->runConfiguration() == rc->runConfiguration() && !old->isRunning()) {
             // Reuse this tab
@@ -222,67 +209,92 @@ void OutputPane::createNewOutputWindow(RunControl *rc)
     }
 }
 
-void OutputPane::runControlStarted()
+void OutputPane::appendOutput(RunControl *rc, const QString &out)
 {
-    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
-    if (rc == qobject_cast<RunControl *>(sender())) {
-        m_reRunButton->setEnabled(false);
-        m_stopButton->setEnabled(true);
-    }
+    OutputWindow *ow = m_outputWindows.value(rc);
+    ow->appendOutput(out);
 }
 
-void OutputPane::runControlFinished()
+void OutputPane::showTabFor(RunControl *rc)
 {
-    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
-    if (rc == qobject_cast<RunControl *>(sender())) {
-        m_reRunButton->setEnabled(rc->runConfiguration()->project());
-        m_stopButton->setEnabled(false);
-    }
+    OutputWindow *ow = m_outputWindows.value(rc);
+    m_tabWidget->setCurrentWidget(ow);
 }
 
-QWidget *OutputPane::outputWidget(QWidget *)
+void OutputPane::insertLine()
 {
-    return m_mainWidget;
+    OutputWindow *currentWindow = qobject_cast<OutputWindow *>(m_tabWidget->currentWidget());
+    if (currentWindow)
+        currentWindow->clear();
 }
 
-QList<QWidget*> OutputPane::toolBarWidgets(void) const
+void OutputPane::reRunRunControl()
 {
-    return QList<QWidget*>() << m_reRunButton << m_stopButton
-            ; // << m_insertLineButton;
+    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
+    if (rc->runConfiguration()->project() != 0)
+        rc->start();
 }
 
-QString OutputPane::name() const
+void OutputPane::stopRunControl()
 {
-    return tr("Application Output");
+    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
+    rc->stop();
 }
 
-void OutputPane::clearContents()
+void OutputPane::closeTab(int index)
 {
-    OutputWindow *currentWindow = qobject_cast<OutputWindow *>(m_tabWidget->currentWidget());
-    if (currentWindow)
-        currentWindow->clear();
+    OutputWindow *ow = static_cast<OutputWindow *>(m_tabWidget->widget(index));
+    RunControl *rc = m_outputWindows.key(ow);
+
+    if (rc->isRunning()) {
+        QString msg = tr("The application is still running. Close it first.");
+        QMessageBox::critical(0, tr("Unable to close"), msg);
+        return;
+    }
+
+    m_tabWidget->removeTab(index);
+    delete ow;
+    delete rc;
 }
 
-void OutputPane::visibilityChanged(bool /* b */)
+void OutputPane::projectRemoved()
 {
+    tabChanged(m_tabWidget->currentIndex());
+}
 
+void OutputPane::tabChanged(int i)
+{
+    if (i == -1) {
+        m_stopAction->setEnabled(false);
+        m_reRunButton->setEnabled(false);
+    } else {
+        RunControl *rc = runControlForTab(i);
+        m_stopAction->setEnabled(rc->isRunning());
+        m_reRunButton->setEnabled(!rc->isRunning() && rc->runConfiguration()->project());
+    }
 }
 
-void OutputPane::insertLine()
+void OutputPane::runControlStarted()
 {
-    OutputWindow *currentWindow = qobject_cast<OutputWindow *>(m_tabWidget->currentWidget());
-    if (currentWindow)
-        currentWindow->clear();
+    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
+    if (rc == qobject_cast<RunControl *>(sender())) {
+        m_reRunButton->setEnabled(false);
+        m_stopAction->setEnabled(true);
+    }
 }
 
-RunControl* OutputPane::runControlForTab(int index) const
+void OutputPane::runControlFinished()
 {
-    return m_outputWindows.key(qobject_cast<OutputWindow *>(m_tabWidget->widget(index)));
+    RunControl *rc = runControlForTab(m_tabWidget->currentIndex());
+    if (rc == qobject_cast<RunControl *>(sender())) {
+        m_reRunButton->setEnabled(rc->runConfiguration()->project());
+        m_stopAction->setEnabled(false);
+    }
 }
 
-int OutputPane::priorityInStatusBar() const
+RunControl* OutputPane::runControlForTab(int index) const
 {
-    return 60;
+    return m_outputWindows.key(qobject_cast<OutputWindow *>(m_tabWidget->widget(index)));
 }
 
 
diff --git a/src/plugins/projectexplorer/outputwindow.h b/src/plugins/projectexplorer/outputwindow.h
index 6e7431f2b62aea4dbcead39e4920468001f3beec..3367909d804c1a2a7c8d9d2ab2f90edbde291f83 100644
--- a/src/plugins/projectexplorer/outputwindow.h
+++ b/src/plugins/projectexplorer/outputwindow.h
@@ -48,6 +48,10 @@ QT_BEGIN_NAMESPACE
 class QTabWidget;
 QT_END_NAMESPACE
 
+namespace Core {
+class ICore;
+}
+
 namespace ProjectExplorer {
 
 class RunControl;
@@ -61,7 +65,7 @@ class OutputPane : public Core::IOutputPane
     Q_OBJECT
 
 public:
-    OutputPane();
+    OutputPane(Core::ICore *core);
     ~OutputPane();
 
     QWidget *outputWidget(QWidget *);
@@ -77,9 +81,9 @@ public:
     void appendOutput(const QString &out);
 
     // ApplicationOutputspecifics
-    void createNewOutputWindow(RunControl *);
-    void appendOutput(RunControl *, const QString &out);
-    void showTabFor(RunControl *);
+    void createNewOutputWindow(RunControl *rc);
+    void appendOutput(RunControl *rc, const QString &out);
+    void showTabFor(RunControl *rc);
     
 public slots:
     void projectRemoved();
@@ -99,16 +103,17 @@ private:
     QWidget *m_mainWidget;
     QTabWidget *m_tabWidget;
     QHash<RunControl *, OutputWindow *> m_outputWindows;
+    QAction *m_stopAction;
 //    QToolButton *m_insertLineButton;
     QToolButton *m_reRunButton;
     QToolButton *m_stopButton;
 };
 
 
-
 class OutputWindow : public QPlainTextEdit
 {
     Q_OBJECT
+
 public:
     OutputWindow(QWidget *parent = 0);
     ~OutputWindow();
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 385f7452b74a730d4472ab7639280098a043cddf..e4721457af47fb2845ee3b75fa049c2e372f0539 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -200,7 +200,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList & /*arguments*/, QStrin
 
     addAutoReleasedObject(new CoreListenerCheckingForRunningBuild(m_buildManager));
 
-    m_outputPane = new OutputPane();
+    m_outputPane = new OutputPane(m_core);
     addAutoReleasedObject(m_outputPane);
     connect(m_session, SIGNAL(projectRemoved(ProjectExplorer::Project *)),
             m_outputPane, SLOT(projectRemoved()));
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index 3f937823ef2502230277cd6c3b8f388202d248bf..5cc5f5c67e28638dc80db5b71e063c4cd16b35cb 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -56,6 +56,8 @@ const char * const CLEANSESSION         = "ProjectExplorer.CleanSession";
 const char * const BUILDCONFIGURATIONMENU = "ProjectExplorer.BuildConfigurationMenu";
 const char * const CANCELBUILD          = "ProjectExplorer.CancelBuild";
 const char * const RUNCONFIGURATIONMENU = "ProjectExplorer.RunConfigurationMenu";
+const char * const RUN                  = "ProjectExplorer.Run";
+const char * const STOP                 = "ProjectExplorer.Stop";
 const char * const DEBUG                = "ProjectExplorer.Debug";
 const char * const DEPENDENCIES         = "ProjectExplorer.Dependencies";
 const char * const FINDINALLPROJECTS    = "ProjectExplorer.FindInAllProjects";
@@ -67,7 +69,7 @@ const char * const OPENFILE             = "ProjectExplorer.OpenFile";
 const char * const REMOVEFILE           = "ProjectExplorer.RemoveFile";
 const char * const RENAMEFILE           = "ProjectExplorer.RenameFile";
 
-//Run modes
+// Run modes
 const char * const RUNMODE              = "ProjectExplorer.RunMode";
 const char * const DEBUGMODE            = "ProjectExplorer.DebugMode";
 
@@ -76,8 +78,6 @@ const int          P_ACTION_RUN            = 100;
 const int          P_ACTION_DEBUG          = 90;
 const int          P_ACTION_BUILDSESSION   = 80;
 
-const char * const RUN                  = "ProjectExplorer.Run";
-
 // context
 const char * const C_PROJECTEXPLORER    = "Project Explorer";
 
diff --git a/src/plugins/quickopen/quickopentoolwindow.cpp b/src/plugins/quickopen/quickopentoolwindow.cpp
index b3232147f37b724f9f332e3f5fea5fbc99dbacca..c3f390f54b7d73c8311c7c6e8c5769c42f5a41ae 100644
--- a/src/plugins/quickopen/quickopentoolwindow.cpp
+++ b/src/plugins/quickopen/quickopentoolwindow.cpp
@@ -261,7 +261,7 @@ QuickOpenToolWindow::QuickOpenToolWindow(QuickOpenPlugin *qop) :
      m_configureAction(new QAction(tr("Configure..."), this)),
      m_fileLineEdit(new Core::Utils::FancyLineEdit)
 {
-    // Explcitly hide the completion list popup.
+    // Explicitly hide the completion list popup.
     m_completionList->hide();
 
     setWindowTitle("Locate...");