Index: /trunk/src/VBox/Devices/USB/VUSBDevice.cpp
===================================================================
--- /trunk/src/VBox/Devices/USB/VUSBDevice.cpp	(revision 46805)
+++ /trunk/src/VBox/Devices/USB/VUSBDevice.cpp	(revision 46806)
@@ -996,4 +996,5 @@
 
     PVUSBROOTHUB pRh = vusbDevGetRh(pDev);
+    AssertPtrReturnVoid(pRh);
     if (pDev->u8Address == VUSB_DEFAULT_ADDRESS)
         pRh->pDefaultAddress = NULL;
@@ -1035,4 +1036,5 @@
 {
     PVUSBROOTHUB pRh = vusbDevGetRh(pDev);
+    AssertPtrReturnVoid(pRh);
 
     /*
Index: /trunk/src/VBox/Devices/USB/VUSBReadAhead.cpp
===================================================================
--- /trunk/src/VBox/Devices/USB/VUSBReadAhead.cpp	(revision 46805)
+++ /trunk/src/VBox/Devices/USB/VUSBReadAhead.cpp	(revision 46806)
@@ -369,8 +369,9 @@
     if (pArgs)
     {
+        PVUSBROOTHUB pRh = vusbDevGetRh(pDev);
         pArgs->pDev  = pDev;
         pArgs->pPipe = pPipe;
         pArgs->fTerminate = false;
-        pArgs->fHighSpeed = ((vusbDevGetRh(pDev)->fHcVersions & VUSB_STDVER_20) != 0);
+        pArgs->fHighSpeed = pRh && ((pRh->fHcVersions & VUSB_STDVER_20) != 0);
         if (pArgs->fHighSpeed)
             rc = RTThreadCreate(&pPipe->ReadAheadThread, vusbDevReadAheadThread, pArgs, 0, RTTHREADTYPE_IO, RTTHREADFLAGS_WAITABLE, "USBISOC");
Index: /trunk/src/VBox/Devices/USB/VUSBUrb.cpp
===================================================================
--- /trunk/src/VBox/Devices/USB/VUSBUrb.cpp	(revision 46805)
+++ /trunk/src/VBox/Devices/USB/VUSBUrb.cpp	(revision 46806)
@@ -990,4 +990,5 @@
     PVUSBDEV pDev = pUrb->VUsb.pDev;
     PVUSBROOTHUB pRh = vusbDevGetRh(pDev);
+    AssertPtrReturn(pRh, VERR_VUSB_DEVICE_NOT_ATTACHED);
     LogFlow(("%s: vusbUrbErrorRh: pDev=%p[%s] rh=%p\n", pUrb->pszDesc, pDev, pDev->pUsbIns ? pDev->pUsbIns->pszName : "", pRh));
     return pRh->pIRhPort->pfnXferError(pRh->pIRhPort, pUrb);
@@ -1012,4 +1013,5 @@
      */
     PVUSBROOTHUB pRh = vusbDevGetRh(pUrb->VUsb.pDev);
+    AssertPtrReturnVoid(pRh);
     if (pUrb->enmType != VUSBXFERTYPE_MSG)
     {
@@ -1115,4 +1117,5 @@
 #ifndef VBOX_WITH_STATISTICS
     PVUSBROOTHUB pRh = vusbDevGetRh(pUrb->VUsb.pDev);
+    AssertPtrReturnVoid(pRh);
 #endif
 
