diff --git a/src/plugins/help/externalhelpwindow.cpp b/src/plugins/help/externalhelpwindow.cpp
index 9f51f91fc1d59155234d35d09340e107398970f9..39a5674b3d17d6ee46ebfb11455912159c9ee16a 100644
--- a/src/plugins/help/externalhelpwindow.cpp
+++ b/src/plugins/help/externalhelpwindow.cpp
@@ -83,14 +83,16 @@ ExternalHelpWindow::ExternalHelpWindow(QWidget *parent)
     connect(action, SIGNAL(triggered()), this, SIGNAL(activateOpenPages()));
     addAction(action);
 
+    CentralWidget *centralWidget = CentralWidget::instance();
+
     action = new QAction(this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Plus));
-    connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(zoomIn()));
+    connect(action, SIGNAL(triggered()), centralWidget, SLOT(zoomIn()));
     addAction(action);
 
     action = new QAction(this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Minus));
-    connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(zoomOut()));
+    connect(action, SIGNAL(triggered()), centralWidget, SLOT(zoomOut()));
     addAction(action);
 
     action = new QAction(this);
@@ -100,16 +102,30 @@ ExternalHelpWindow::ExternalHelpWindow(QWidget *parent)
 
     action = new QAction(this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C));
-    connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(copy()));
+    connect(action, SIGNAL(triggered()), centralWidget, SLOT(copy()));
     addAction(action);
 
     action = new QAction(this);
     action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_P));
-    connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(print()));
+    connect(action, SIGNAL(triggered()), centralWidget, SLOT(print()));
     addAction(action);
 
+    action = new QAction(this);
+    action->setShortcut(QKeySequence::Back);
+    action->setEnabled(centralWidget->isBackwardAvailable());
+    connect(action, SIGNAL(triggered()), centralWidget, SLOT(backward()));
+    connect(centralWidget, SIGNAL(backwardAvailable(bool)), action,
+        SLOT(setEnabled(bool)));
+
+    action = new QAction(this);
+    action->setShortcut(QKeySequence::Forward);
+    action->setEnabled(centralWidget->isForwardAvailable());
+    connect(action, SIGNAL(triggered()), centralWidget, SLOT(forward()));
+    connect(centralWidget, SIGNAL(forwardAvailable(bool)), action,
+        SLOT(setEnabled(bool)));
+
     QAction *reset = new QAction(this);
-    connect(reset, SIGNAL(triggered()), CentralWidget::instance(), SLOT(resetZoom()));
+    connect(reset, SIGNAL(triggered()), centralWidget, SLOT(resetZoom()));
     addAction(reset);
 
     QAction *ctrlTab = new QAction(this);
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index 2a3a71688e47f1b7c5c69f0495157c780c6a1fa8..69aa2597d260091454a11edaea6fd6f5e6142ec7 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -303,12 +303,22 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
     Aggregation::Aggregate *agg = new Aggregation::Aggregate;
     agg->add(m_centralWidget);
     agg->add(new HelpFindSupport(m_centralWidget));
+
+    QWidget *toolBarWidget = new QWidget;
+    QHBoxLayout *toolBarLayout = new QHBoxLayout(toolBarWidget);
+    toolBarLayout->setMargin(0);
+    toolBarLayout->setSpacing(0);
+    toolBarLayout->addWidget(m_externalHelpBar = createIconToolBar(true));
+    toolBarLayout->addWidget(m_internalHelpBar = createIconToolBar(false));
+    m_externalHelpBar->setVisible(false);
+    toolBarLayout->addWidget(createWidgetToolBar());
+
     QWidget *mainWidget = new QWidget;
     m_splitter->addWidget(mainWidget);
     QVBoxLayout *mainWidgetLayout = new QVBoxLayout(mainWidget);
     mainWidgetLayout->setMargin(0);
     mainWidgetLayout->setSpacing(0);
-    mainWidgetLayout->addWidget(createToolBar());
+    mainWidgetLayout->addWidget(toolBarWidget);
     mainWidgetLayout->addWidget(m_centralWidget);
 
     if (QLayout *layout = m_centralWidget->layout()) {
@@ -623,6 +633,8 @@ void HelpPlugin::showExternalWindow()
 {
     bool firstTime = m_firstModeChange;
     setup();
+    m_externalHelpBar->setVisible(true);
+    m_internalHelpBar->setVisible(false);
     m_externalWindow->show();
     connectExternalHelpWindow();
     m_externalWindow->activateWindow();
@@ -705,6 +717,8 @@ void HelpPlugin::contextHelpOptionChanged()
 
                 slotHideRightPane();
                 m_mode->setEnabled(false);
+                m_externalHelpBar->setVisible(true);
+                m_internalHelpBar->setVisible(false);
                 m_externalWindow->show();
                 connectExternalHelpWindow();
 
@@ -729,6 +743,8 @@ void HelpPlugin::contextHelpOptionChanged()
             m_mode->setEnabled(true);
             m_externalWindow->close();
             m_sideBar->setVisible(true);
+            m_internalHelpBar->setVisible(true);
+            m_externalHelpBar->setVisible(false);
         }
     }
 }
@@ -865,41 +881,25 @@ void HelpPlugin::activateBookmarks()
     m_sideBar->activateItem(m_bookmarkItem);
 }
 
-QToolBar *HelpPlugin::createToolBar()
+QToolBar *HelpPlugin::createWidgetToolBar()
 {
     QToolBar *toolBar = new QToolBar;
-    Core::ActionManager *am = m_core->actionManager();
-    toolBar->addAction(am->command(QLatin1String("Help.Home"))->action());
+    toolBar->addWidget(OpenPagesManager::instance().openPagesComboBox());
 
-    QAction *back = am->command(QLatin1String("Help.Previous"))->action();
-    QAction *next = am->command(QLatin1String("Help.Next"))->action();
-    setupNavigationMenus(back, next, toolBar);
-    toolBar->addAction(back);
-    toolBar->addAction(next);
-
-    toolBar->addSeparator();
-    toolBar->addAction(am->command(QLatin1String("Help.AddBookmark"))->action());
-    toolBar->setMovable(false);
-
-    toolBar->addSeparator();
-
-    QWidget *w = new QWidget;
-    toolBar->addWidget(w);
-
-    QHBoxLayout *layout = new QHBoxLayout(w);
-    layout->setMargin(0);
-    layout->addSpacing(10);
-    layout->addWidget(OpenPagesManager::instance().openPagesComboBox());
-
-    layout->addWidget(new QLabel(tr("Filtered by:")));
+    toolBar->addWidget(new QLabel(tr("Filtered by:")));
     m_filterComboBox = new QComboBox;
     m_filterComboBox->setMinimumContentsLength(20);
-    layout->addWidget(m_filterComboBox);
+    toolBar->addWidget(m_filterComboBox);
     connect(m_filterComboBox, SIGNAL(activated(QString)), this,
         SLOT(filterDocumentation(QString)));
     connect(m_filterComboBox, SIGNAL(currentIndexChanged(int)), this,
         SLOT(updateSideBarSource()));
 
+    QWidget *dummy = new QWidget;
+    QHBoxLayout *layout = new QHBoxLayout(dummy);
+    layout->addStretch();
+    toolBar->addWidget(dummy);
+
     m_closeButton = new QToolButton();
     m_closeButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_CLOSE)));
     m_closeButton->setToolTip(tr("Close current Page"));
@@ -907,8 +907,55 @@ QToolBar *HelpPlugin::createToolBar()
         SLOT(closeCurrentPage()));
     connect(&OpenPagesManager::instance(), SIGNAL(pagesChanged()), this,
         SLOT(updateCloseButton()));
-    layout->addStretch();
-    layout->addWidget(m_closeButton);
+    toolBar->addWidget(m_closeButton);
+
+    return toolBar;
+}
+
+QToolBar *HelpPlugin::createIconToolBar(bool external)
+{
+    QToolBar *toolBar = new QToolBar;
+
+    QAction *home, *back, *next, *bookmark;
+    if (external) {
+        home = new QAction(QIcon(QLatin1String(IMAGEPATH "home.png")),
+            tr("Home"), toolBar);
+        connect(home, SIGNAL(triggered()), m_centralWidget, SLOT(home()));
+
+        back = new QAction(QIcon(QLatin1String(IMAGEPATH "previous.png")),
+            tr("Previous Page"), toolBar);
+        back->setEnabled(m_centralWidget->isBackwardAvailable());
+        connect(back, SIGNAL(triggered()), m_centralWidget, SLOT(backward()));
+        connect(m_centralWidget, SIGNAL(backwardAvailable(bool)), back,
+            SLOT(setEnabled(bool)));
+
+        next = new QAction(QIcon(QLatin1String(IMAGEPATH "next.png")),
+            tr("Next Page"), toolBar);
+        next->setEnabled(m_centralWidget->isForwardAvailable());
+        connect(next, SIGNAL(triggered()), m_centralWidget, SLOT(forward()));
+        connect(m_centralWidget, SIGNAL(forwardAvailable(bool)), next,
+            SLOT(setEnabled(bool)));
+
+        bookmark = new QAction(QIcon(QLatin1String(IMAGEPATH "bookmark.png")),
+            tr("Add Bookmark"), toolBar);
+        connect(bookmark, SIGNAL(triggered()), this, SLOT(addBookmark()));
+    } else {
+        Core::ActionManager *am = m_core->actionManager();
+        home = am->command(QLatin1String("Help.Home"))->action();
+        back = am->command(QLatin1String("Help.Previous"))->action();
+        next = am->command(QLatin1String("Help.Next"))->action();
+        bookmark = am->command(QLatin1String("Help.AddBookmark"))->action();
+    }
+
+    setupNavigationMenus(back, next, toolBar);
+
+    toolBar->addAction(home);
+    toolBar->addAction(back);
+    toolBar->addAction(next);
+    toolBar->addSeparator();
+    toolBar->addAction(bookmark);
+    toolBar->setMovable(false);
+    toolBar->addSeparator();
 
     return toolBar;
 }
diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h
index a5b42d3ac489125bfee008037bab01e5f8ed8fe5..63e420c8748d3da5e55b94b695cdb7a5518b0ff8 100644
--- a/src/plugins/help/helpplugin.h
+++ b/src/plugins/help/helpplugin.h
@@ -114,7 +114,8 @@ private:
     void setupUi();
     void resetFilter();
     void activateHelpMode();
-    QToolBar *createToolBar();
+    QToolBar *createWidgetToolBar();
+    QToolBar *createIconToolBar(bool external);
     HelpViewer* viewerForContextMode();
     void createRightPaneContextViewer();
 
@@ -159,6 +160,8 @@ private:
 
     QMenu *m_backMenu;
     QMenu *m_nextMenu;
+    QToolBar *m_internalHelpBar;
+    QToolBar *m_externalHelpBar;
 };
 
 } // namespace Internal