diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp
index 1f434e44dceb7cc86171fc6d5897a36e9f665266..bce0213b5f0c9de1c783dbcfe4fcb152c8de3317 100644
--- a/src/plugins/debugger/debuggermainwindow.cpp
+++ b/src/plugins/debugger/debuggermainwindow.cpp
@@ -126,7 +126,8 @@ public:
 
     DebuggerLanguages m_supportedLanguages;
 
-    QStackedWidget *m_toolBarStack;
+    QWidget *m_debugToolBar;
+    QHBoxLayout *m_debugToolBarLayout;
 
     QHash<DebuggerLanguage, Context> m_contextsForLanguage;
 
@@ -151,7 +152,8 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw)
     : q(mw)
     , m_resizeEventFilter(this)
     , m_supportedLanguages(AnyLanguage)
-    , m_toolBarStack(new QStackedWidget)
+    , m_debugToolBar(new QWidget)
+    , m_debugToolBarLayout(new QHBoxLayout(m_debugToolBar))
     , m_inDebugMode(false)
     , m_changingUI(false)
     , m_previousDebugLanguages(AnyLanguage)
@@ -163,7 +165,10 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw)
     , m_previousRunConfiguration(0)
     , m_engine(0)
 {
+    m_debugToolBarLayout->setMargin(0);
+    m_debugToolBarLayout->setSpacing(0);
     createViewsMenuItems();
+    addLanguage(AnyLanguage, Context());
     addLanguage(CppLanguage, Context(C_CPPDEBUGGER));
     addLanguage(QmlLanguage, Context(C_QMLDEBUGGER));
 }
@@ -367,8 +372,10 @@ void DebuggerMainWindowPrivate::activateQmlCppLayout()
 {
     Context qmlCppContext = m_contextsForLanguage.value(QmlLanguage);
     qmlCppContext.add(m_contextsForLanguage.value(CppLanguage));
-    if (m_toolBars.value(QmlLanguage))
-        m_toolBarStack->setCurrentWidget(m_toolBars.value(QmlLanguage));
+    if (m_toolBars.value(QmlLanguage)) {
+        m_toolBars.value(QmlLanguage)->show();
+        m_debugToolBarLayout->insertWidget(1, m_toolBars.value(QmlLanguage));
+    }
 
     if (m_previousDebugLanguages & QmlLanguage) {
         m_dockWidgetActiveStateQmlCpp = q->saveSettings();
@@ -387,7 +394,10 @@ void DebuggerMainWindowPrivate::activateCppLayout()
 {
     Context qmlCppContext = m_contextsForLanguage.value(QmlLanguage);
     qmlCppContext.add(m_contextsForLanguage.value(CppLanguage));
-    m_toolBarStack->setCurrentWidget(m_toolBars.value(CppLanguage));
+    if (m_toolBars.value(QmlLanguage)) {
+        m_toolBars.value(QmlLanguage)->hide();
+        m_debugToolBarLayout->removeWidget(m_toolBars.value(QmlLanguage));
+    }
 
     if (m_previousDebugLanguages & QmlLanguage) {
         m_dockWidgetActiveStateQmlCpp = q->saveSettings();
@@ -408,7 +418,12 @@ void DebuggerMainWindow::setToolBar(DebuggerLanguage language, QWidget *widget)
 {
     Q_ASSERT(d->m_toolBars.contains(language));
     d->m_toolBars[language] = widget;
-    d->m_toolBarStack->addWidget(widget);
+    if (language == CppLanguage)
+        d->m_debugToolBarLayout->addWidget(widget);
+
+    //Add widget at the end
+    if (language == AnyLanguage)
+        d->m_debugToolBarLayout->insertWidget(-1, widget, 10);
 }
 
 QDockWidget *DebuggerMainWindow::dockWidget(const QString &objectName) const
@@ -507,7 +522,7 @@ QWidget *DebuggerMainWindow::createContents(IMode *mode)
     QHBoxLayout *debugToolBarLayout = new QHBoxLayout(debugToolBar);
     debugToolBarLayout->setMargin(0);
     debugToolBarLayout->setSpacing(0);
-    debugToolBarLayout->addWidget(d->m_toolBarStack);
+    debugToolBarLayout->addWidget(d->m_debugToolBar);
     debugToolBarLayout->addWidget(new Utils::StyledSeparator);
 
     QDockWidget *dock = new QDockWidget(DebuggerMainWindowPrivate::tr("Debugger Toolbar"));
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 45e1e3e8243115904d5add13ff125bdc3bc58d90..6d65e5341a5867918ead8822170e223eb29e46a3 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -2341,6 +2341,8 @@ void DebuggerPluginPrivate::updateState(DebuggerEngine *engine)
     m_attachToRemoteServerAction->setEnabled(true);
     m_attachToRemoteProcessAction->setEnabled(true);
 
+    m_threadBox->setEnabled(state == InferiorStopOk);
+
     const bool isCore = engine->startParameters().startMode == AttachCore;
     const bool stopped = state == InferiorStopOk;
     const bool detachable = stopped && !isCore;
@@ -3455,9 +3457,9 @@ void DebuggerPluginPrivate::extensionsInitialized()
 
     hbox->addWidget(m_threadBox);
     hbox->addSpacerItem(new QSpacerItem(4, 0));
-    hbox->addWidget(m_statusLabel, 10);
 
     m_mainWindow->setToolBar(CppLanguage, toolbarContainer);
+    m_mainWindow->setToolBar(AnyLanguage, m_statusLabel);
 
     connect(action(EnableReverseDebugging),
         SIGNAL(valueChanged(QVariant)),
diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp
index 2ee94881b66e1a48935e429b5b74b5f1f49524a9..d2115b9c45527829734e3b790cb95488624675cd 100644
--- a/src/plugins/debugger/qml/qmlcppengine.cpp
+++ b/src/plugins/debugger/qml/qmlcppengine.cpp
@@ -268,7 +268,7 @@ bool QmlCppEngine::acceptsBreakpoint(BreakpointModelId id) const
 
 void QmlCppEngine::selectThread(int index)
 {
-    d->m_cppEngine->selectThread(index);
+    d->m_activeEngine->selectThread(index);
 }
 
 void QmlCppEngine::assignValueInDebugger(const WatchData *data,
diff --git a/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp b/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp
index 4ca220f8ae4915566b23c0e7ca106e71f2cd72ec..c239e7b1c890c535912387d9c7a42bbb98491d82 100644
--- a/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp
+++ b/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp
@@ -202,9 +202,7 @@ void QmlJsInspectorToolBar::createActions()
     am->registerAction(m_fromQmlAction, Constants::FROM_QML_ACTION, context);
     am->registerAction(m_showAppOnTopAction, Constants::SHOW_APP_ON_TOP_ACTION, context);
 
-    m_barWidget = new Utils::StyledBar;
-    m_barWidget->setSingleRow(true);
-    m_barWidget->setProperty("topBorder", true);
+    m_barWidget = new QWidget;
 
     QMenu *playSpeedMenu = new QMenu(m_barWidget);
     m_playSpeedMenuActions = new QActionGroup(this);
@@ -239,19 +237,7 @@ void QmlJsInspectorToolBar::createActions()
     toolBarLayout->setMargin(0);
     toolBarLayout->setSpacing(5);
 
-    m_operateByInstructionButton = toolButton(am->command(Debugger::Constants::OPERATE_BY_INSTRUCTION)->action());
-
-    // Add generic debugging controls
-    toolBarLayout->addWidget(toolButton(Debugger::DebuggerPlugin::visibleDebugAction()));
-    toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::STOP)->action()));
-    toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::NEXT)->action()));
-    toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::STEP)->action()));
-    toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::STEPOUT)->action()));
-    toolBarLayout->addWidget(m_operateByInstructionButton);
-    toolBarLayout->addStretch(1);
-
     // QML Helpers
-    toolBarLayout->addWidget(new Utils::StyledSeparator);
     toolBarLayout->addWidget(toolButton(am->command(Constants::FROM_QML_ACTION)->action()));
     toolBarLayout->addWidget(toolButton(am->command(Constants::SHOW_APP_ON_TOP_ACTION)->action()));
     m_playButton = toolButton(am->command(Constants::PLAY_ACTION)->action());
@@ -262,6 +248,7 @@ void QmlJsInspectorToolBar::createActions()
     toolBarLayout->addWidget(new Utils::StyledSeparator);
     toolBarLayout->addWidget(toolButton(am->command(Constants::SELECT_ACTION)->action()));
     toolBarLayout->addWidget(toolButton(am->command(Constants::ZOOM_ACTION)->action()));
+    toolBarLayout->addWidget(new Utils::StyledSeparator);
 
     connect(m_fromQmlAction, SIGNAL(triggered()), SLOT(activateFromQml()));
     connect(m_showAppOnTopAction, SIGNAL(triggered()), SLOT(showAppOnTopClick()));
@@ -269,11 +256,6 @@ void QmlJsInspectorToolBar::createActions()
     connect(m_selectAction, SIGNAL(triggered(bool)), SLOT(selectToolTriggered(bool)));
     connect(m_zoomAction, SIGNAL(triggered(bool)), SLOT(zoomToolTriggered(bool)));
 
-    Debugger::DebuggerMainWindow *mw = Debugger::DebuggerPlugin::mainWindow();
-    activeDebugLanguagesChanged(mw->activeDebugLanguages());
-    connect(mw, SIGNAL(activeDebugLanguagesChanged(Debugger::DebuggerLanguages)),
-            this, SLOT(activeDebugLanguagesChanged(Debugger::DebuggerLanguages)));
-
     readSettings();
     connect(Core::ICore::instance(),
             SIGNAL(saveSettingsRequested()), SLOT(writeSettings()));
@@ -358,11 +340,6 @@ void QmlJsInspectorToolBar::activateFromQml()
         emit applyChangesFromQmlFileTriggered(m_fromQmlAction->isChecked());
 }
 
-void QmlJsInspectorToolBar::activeDebugLanguagesChanged(Debugger::DebuggerLanguages languages)
-{
-    m_operateByInstructionButton->setVisible(languages & Debugger::CppLanguage);
-}
-
 void QmlJsInspectorToolBar::updateDesignModeActions(DesignTool activeTool)
 {
     m_activeTool = activeTool;
diff --git a/src/plugins/qmljsinspector/qmljsinspectortoolbar.h b/src/plugins/qmljsinspector/qmljsinspectortoolbar.h
index ef1f89ee5d5867fa86d13293ac3acf8873b96b29..99c4fd9a39fff226a60eeff8d5118c0637e9c6cf 100644
--- a/src/plugins/qmljsinspector/qmljsinspectortoolbar.h
+++ b/src/plugins/qmljsinspector/qmljsinspectortoolbar.h
@@ -113,13 +113,9 @@ private slots:
 
     void updatePlayAction();
 
-    void activeDebugLanguagesChanged(Debugger::DebuggerLanguages languages);
-
 private:
     void updateDesignModeActions(DesignTool activeTool);
 
-    QToolButton *m_operateByInstructionButton;
-
     Utils::SavedAction *m_fromQmlAction;
     QAction *m_playAction;
     QAction *m_selectAction;
@@ -140,7 +136,7 @@ private:
     bool m_designModeActive;
     DesignTool m_activeTool;
 
-    Utils::StyledBar *m_barWidget;
+    QWidget *m_barWidget;
 };
 
 } // namespace Internal