Index: /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp	(revision 87216)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp	(revision 87217)
@@ -189,5 +189,5 @@
     void sigSourceChanged(const QUrl &url);
     void sigTitleUpdate(const QString &strTitle);
-    void sigOpenLinkInNewTab(const QUrl &url);
+    void sigOpenLinkInNewTab(const QUrl &url, bool fBackground);
     void sigAddBookmark(const QUrl &url, const QString &strTitle);
     void sigFontPointSizeChanged(int iFontPointSize);
@@ -292,5 +292,5 @@
 
     void sltHandletabTitleChange(const QString &strTitle);
-    void sltHandleOpenLinkInNewTab(const QUrl &url);
+    void sltHandleOpenLinkInNewTab(const QUrl &url, bool fBackground);
     void sltHandleTabClose(int iTabIndex);
     void sltHandleContextMenuTabClose();
@@ -304,5 +304,5 @@
     void prepare();
     void clearAndDeleteTabs();
-    void addNewTab(const QUrl &initialUrl);
+    void addNewTab(const QUrl &initialUrl, bool fBackground);
     /** Check if lists of tab url/title has changed. if so emit a signal. */
     void updateTabUrlTitleList();
@@ -841,5 +841,5 @@
 }
 
-void UIHelpBrowserTabManager::addNewTab(const QUrl &initialUrl)
+void UIHelpBrowserTabManager::addNewTab(const QUrl &initialUrl, bool fBackground)
 {
    UIHelpBrowserTab *pTabWidget = new  UIHelpBrowserTab(m_pHelpEngine, m_homeUrl, initialUrl);
@@ -860,5 +860,5 @@
            this, &UIHelpBrowserTabManager::sigLinkHighlighted);
 
-   if (m_fSwitchToNewTab)
+   if (!fBackground)
        setCurrentIndex(index);
 
@@ -905,9 +905,9 @@
     /* Start with a single tab showing the home URL: */
     if (m_savedUrlList.isEmpty())
-        addNewTab(QUrl());
+        addNewTab(QUrl(), false);
     /* Start with saved tab(s): */
     else
         for (int i = 0; i < m_savedUrlList.size(); ++i)
-            addNewTab(m_savedUrlList[i]);
+            addNewTab(m_savedUrlList[i], false);
     updateTabUrlTitleList();
 }
@@ -931,5 +931,5 @@
     }
     else
-        addNewTab(url);
+        addNewTab(url, false);
 
     updateTabUrlTitleList();
@@ -1052,8 +1052,8 @@
 }
 
-void UIHelpBrowserTabManager::sltHandleOpenLinkInNewTab(const QUrl &url)
+void UIHelpBrowserTabManager::sltHandleOpenLinkInNewTab(const QUrl &url, bool fBackground)
 {
     if (url.isValid())
-        addNewTab(url);
+        addNewTab(url, fBackground);
     updateTabUrlTitleList();
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.cpp	(revision 87216)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.cpp	(revision 87217)
@@ -520,4 +520,15 @@
 }
 
+void UIHelpViewer::mousePressEvent(QMouseEvent *pEvent)
+{
+    QString strAnchor = anchorAt(pEvent->pos());
+    if (!strAnchor.isEmpty())
+    {
+        QString strLink = source().resolved(strAnchor).toString();
+        emit sigOpenLinkInNewTab(strLink, true);
+    }
+    QIWithRetranslateUI<QTextBrowser>::mousePressEvent(pEvent);
+}
+
 void UIHelpViewer::retranslateUi()
 {
@@ -616,5 +627,5 @@
     QUrl url = pSender->data().toUrl();
     if (url.isValid())
-        emit sigOpenLinkInNewTab(url);
+        emit sigOpenLinkInNewTab(url, false);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.h	(revision 87216)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.h	(revision 87217)
@@ -39,5 +39,5 @@
 signals:
 
-    void sigOpenLinkInNewTab(const QUrl &url);
+    void sigOpenLinkInNewTab(const QUrl &url, bool fBackground);
     void sigCloseFindInPageWidget();
     void sigFontPointSizeChanged(int iFontPointSize);
@@ -66,4 +66,5 @@
     virtual void resizeEvent(QResizeEvent *pEvent) /* override */;
     virtual void wheelEvent(QWheelEvent *pEvent) /* override */;
+    virtual void mousePressEvent(QMouseEvent *pEvent) /* override */;
 
 private slots:
