Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 82334)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 82335)
@@ -2367,6 +2367,6 @@
 {
     /* Assign new mode (without save): */
-    KClipboardMode mode = pAction->data().value<KClipboardMode>();
-    machine().SetClipboardMode(mode);
+    KClipboardMode enmMode = pAction->data().value<KClipboardMode>();
+    machine().SetClipboardMode(enmMode);
 }
 
@@ -2915,17 +2915,28 @@
 void UIMachineLogic::updateMenuDevicesSharedClipboard(QMenu *pMenu)
 {
+    /* Acquire current clipboard mode: */
+    const KClipboardMode enmCurrentMode = machine().GetClipboardMode();
+
     /* First run: */
     if (!m_pSharedClipboardActions)
     {
+        /* Prepare action-group: */
         m_pSharedClipboardActions = new QActionGroup(this);
-        for (int i = KClipboardMode_Disabled; i < KClipboardMode_Max; ++i)
+        /* Load currently supported Clipboard modes: */
+        CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();
+        QVector<KClipboardMode> clipboardModes = comProperties.GetSupportedClipboardModes();
+        /* Take current clipboard mode into account: */
+        if (!clipboardModes.contains(enmCurrentMode))
+            clipboardModes.prepend(enmCurrentMode);
+        /* Create action for all clipboard modes: */
+        foreach (const KClipboardMode &enmMode, clipboardModes)
         {
-            KClipboardMode mode = (KClipboardMode)i;
-            QAction *pAction = new QAction(gpConverter->toString(mode), m_pSharedClipboardActions);
+            QAction *pAction = new QAction(gpConverter->toString(enmMode), m_pSharedClipboardActions);
             pMenu->addAction(pAction);
-            pAction->setData(QVariant::fromValue(mode));
+            pAction->setData(QVariant::fromValue(enmMode));
             pAction->setCheckable(true);
-            pAction->setChecked(machine().GetClipboardMode() == mode);
+            pAction->setChecked(enmMode == enmCurrentMode);
         }
+        /* Connect action-group trigger: */
         connect(m_pSharedClipboardActions, &QActionGroup::triggered, this, &UIMachineLogic::sltChangeSharedClipboardType);
     }
@@ -2933,5 +2944,5 @@
     else
         foreach (QAction *pAction, m_pSharedClipboardActions->actions())
-            if (pAction->data().value<KClipboardMode>() == machine().GetClipboardMode())
+            if (pAction->data().value<KClipboardMode>() == enmCurrentMode)
                 pAction->setChecked(true);
 }
