Index: /trunk/src/VBox/Devices/USB/USBProxyDevice.cpp
===================================================================
--- /trunk/src/VBox/Devices/USB/USBProxyDevice.cpp	(revision 58641)
+++ /trunk/src/VBox/Devices/USB/USBProxyDevice.cpp	(revision 58642)
@@ -47,4 +47,7 @@
 static void *GetStdDescSync(PUSBPROXYDEV pProxyDev, uint8_t iDescType, uint8_t iIdx, uint16_t LangId, uint16_t cbHint)
 {
+#define VUSBSTATUS_DNR_RETRIES 5
+    int cRetries = 0;
+
     LogFlow(("GetStdDescSync: pProxyDev=%s\n", pProxyDev->pUsbIns->pszName));
     for (;;)
@@ -105,4 +108,15 @@
         {
             Log(("GetStdDescSync: Urb.enmStatus=%d\n", Urb.enmStatus));
+
+            if (Urb.enmStatus == VUSBSTATUS_DNR)
+            {
+                cRetries++;
+                if (cRetries < VUSBSTATUS_DNR_RETRIES)
+                {
+                    Log(("GetStdDescSync: Retrying %u/%u\n", cRetries, max_retries));
+                    continue;
+                }
+            }
+
             break;
         }
