Index: /trunk/src/VBox/Devices/USB/VUSBDevice.cpp
===================================================================
--- /trunk/src/VBox/Devices/USB/VUSBDevice.cpp	(revision 55900)
+++ /trunk/src/VBox/Devices/USB/VUSBDevice.cpp	(revision 55901)
@@ -1014,21 +1014,9 @@
     PVUSBROOTHUB pRh = vusbDevGetRh(pDev);
     AssertPtrReturnVoid(pRh);
-    if (pDev->u8Address == VUSB_DEFAULT_ADDRESS)
-        pRh->pDefaultAddress = NULL;
 
     vusbDevAddressUnHash(pDev);
 
     if (u8Address == VUSB_DEFAULT_ADDRESS)
-    {
-        if (pRh->pDefaultAddress != NULL)
-        {
-            vusbDevAddressUnHash(pRh->pDefaultAddress);
-            vusbDevSetState(pRh->pDefaultAddress, VUSB_DEVICE_STATE_POWERED);
-            Log(("2 DEFAULT ADDRS\n"));
-        }
-
-        pRh->pDefaultAddress = pDev;
         vusbDevSetState(pDev, VUSB_DEVICE_STATE_DEFAULT);
-    }
     else
         vusbDevSetState(pDev, VUSB_DEVICE_STATE_ADDRESS);
@@ -1179,5 +1167,6 @@
     ASMAtomicXchgBool(&pDev->fTerminate, false);
     rc = RTThreadCreateF(&pDev->hUrbIoThread, vusbDevUrbIoThread, pDev, 0, RTTHREADTYPE_IO,
-                         RTTHREADFLAGS_WAITABLE, "USBDevIo-%d", pDev->i16Port);
+                         RTTHREADFLAGS_WAITABLE, "%s-%d", pDev->pUsbIns->pReg->szName,
+                         pDev->pUsbIns->iInstance);
     if (RT_SUCCESS(rc))
     {
@@ -1233,6 +1222,4 @@
     if (!pRh)
         AssertMsgFailedReturn(("Not attached!\n"), VERR_VUSB_DEVICE_NOT_ATTACHED);
-    if (pRh->pDefaultAddress == pDev)
-        pRh->pDefaultAddress = NULL;
 
     pDev->pHub->pOps->pfnDetach(pDev->pHub, pDev);
Index: /trunk/src/VBox/Devices/USB/VUSBInternal.h
===================================================================
--- /trunk/src/VBox/Devices/USB/VUSBInternal.h	(revision 55900)
+++ /trunk/src/VBox/Devices/USB/VUSBInternal.h	(revision 55901)
@@ -354,6 +354,8 @@
     /** Address hash table. */
     PVUSBDEV                apAddrHash[VUSB_ADDR_HASHSZ];
-    /** The default address. */
-    PVUSBDEV                pDefaultAddress;
+
+#if HC_ARCH_BITS == 32
+    uint32_t                Alignment0;
+#endif
 
     /** Pointer to the driver instance. */
@@ -365,6 +367,7 @@
 
 #if HC_ARCH_BITS == 32
-    uint32_t                Alignment0;
-#endif
+    uint32_t                Alignment1;
+#endif
+
     /** Critical section protecting the device list. */
     RTCRITSECT              CritSectDevices;
@@ -373,5 +376,5 @@
 
 #if HC_ARCH_BITS == 32
-    uint32_t                Alignment1;
+    uint32_t                Alignment2;
 #endif
 
