Index: /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp	(revision 86883)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp	(revision 86884)
@@ -17,4 +17,5 @@
 
 /* Qt includes: */
+#include <QClipboard>
 #include <QComboBox>
 #include <QDateTime>
@@ -293,4 +294,5 @@
     void sltHandleOpenLinkInNewTab();
     void sltHandleOpenLink();
+    void sltHandleCopyLink();
     void sltHandleFindWidgetDrag(const QPoint &delta);
     void sltHandleFindInPageSearchTextChange(const QString &strSearchText);
@@ -1182,7 +1184,12 @@
             this, &UIHelpBrowserViewer::sltHandleOpenLinkInNewTab);
 
+    QAction *pCopyLink = new QAction(UIHelpBrowserWidget::tr("Copy Link"));
+    connect(pCopyLink, &QAction::triggered,
+            this, &UIHelpBrowserViewer::sltHandleCopyLink);
+
     pMenu.addAction(pNavigationActions);
     pMenu.addAction(pOpenLinkAction);
     pMenu.addAction(pOpenInNewTabAction);
+    pMenu.addAction(pCopyLink);
 
     QString strAnchor = anchorAt(event->pos());
@@ -1192,4 +1199,5 @@
         pOpenLinkAction->setData(strLink);
         pOpenInNewTabAction->setData(strLink);
+        pCopyLink->setData(strLink);
     }
     else
@@ -1197,4 +1205,5 @@
         pOpenLinkAction->setEnabled(false);
         pOpenInNewTabAction->setEnabled(false);
+        pCopyLink->setEnabled(false);
     }
     pMenu.exec(event->globalPos());
@@ -1333,4 +1342,18 @@
     if (url.isValid())
         QTextBrowser::setSource(url);
+}
+
+void UIHelpBrowserViewer::sltHandleCopyLink()
+{
+    QAction *pSender = qobject_cast<QAction*>(sender());
+    if (!pSender)
+        return;
+    QUrl url = pSender->data().toUrl();
+    if (url.isValid())
+    {
+        QClipboard *pClipboard = QApplication::clipboard();
+        if (pClipboard)
+            pClipboard->setText(url.toString());
+    }
 }
 
@@ -2097,10 +2120,15 @@
     QAction *pOpen = menu.addAction(tr("Open in Link"));
     QAction *pOpenInNewTab = menu.addAction(tr("Open in Link New Tab"));
+    QAction *pCopyLink = menu.addAction(tr("Copy Link"));
+
     pOpen->setData(url);
     pOpenInNewTab->setData(url);
+    pCopyLink->setData(url);
     connect(pOpenInNewTab, &QAction::triggered,
             this, &UIHelpBrowserWidget::sltOpenLinkInNewTab);
     connect(pOpen, &QAction::triggered,
             this, &UIHelpBrowserWidget::sltOpenLink);
+    connect(pCopyLink, &QAction::triggered,
+            this, &UIHelpBrowserWidget::sltCopyLink);
 
     menu.exec(pSender->mapToGlobal(pos));
@@ -2115,4 +2143,18 @@
 {
     openLinkSlotHandler(sender(), false);
+}
+
+void UIHelpBrowserWidget::sltCopyLink()
+{
+    QAction *pAction = qobject_cast<QAction*>(sender());
+    if (!pAction)
+        return;
+    QUrl url = pAction->data().toUrl();
+    if (url.isValid())
+    {
+        QClipboard *pClipboard = QApplication::clipboard();
+        if (pClipboard)
+            pClipboard->setText(url.toString());
+    }
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.h	(revision 86883)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.h	(revision 86884)
@@ -99,4 +99,5 @@
     void sltOpenLinkInNewTab();
     void sltOpenLink();
+    void sltCopyLink();
     void sltAddNewBookmark(const QUrl &url, const QString &strTitle);
     void sltHandleFontSizeactions();
