Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp	(revision 437)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp	(revision 438)
@@ -75,4 +75,6 @@
 
     ~VBoxUSBLedTip() { remove (parentWidget()); }
+    
+    bool isUSBEnabled() const { return mUSBEnabled; }
     
 protected:
@@ -580,5 +582,6 @@
     bool isUSBEnabled = cmachine.GetUSBController().GetEnabled();
     devicesUSBMenu->setEnabled (isUSBEnabled);
-    usb_light->setState (CEnums::InvalidActivity);
+    usb_light->setState (isUSBEnabled ? CEnums::DeviceIdle
+                                      : CEnums::InvalidActivity);
     mUsbLedTip = new VBoxUSBLedTip (usb_light, cconsole, isUSBEnabled);
 
@@ -1290,5 +1293,8 @@
     if (element & USBStuff)
     {
-        devicesUSBMenu->setEnabled (machine_state == CEnums::Running);
+        /// @todo (r=dmik) do we really need to disable the control while
+        //  in Pause? Check the same for CD/DVD above.
+        if (mUsbLedTip->isUSBEnabled())
+            devicesUSBMenu->setEnabled (machine_state == CEnums::Running);
     }
     if (element & PauseAction)
@@ -2023,4 +2029,9 @@
                 net_light->setState (st);
         }
+        if (usb_light->state() != CEnums::InvalidActivity) {
+            st = cconsole.GetDeviceActivity (CEnums::USBDevice);
+            if (usb_light->state() != st)
+                usb_light->setState (st);
+        }
     }
 }
