Index: uspace/lib/usbdev/src/devdrv.c
===================================================================
--- uspace/lib/usbdev/src/devdrv.c	(revision da2f1c9e6540144b91feae7208613a48eb7831e1)
+++ uspace/lib/usbdev/src/devdrv.c	(revision 8e3742f9ba536c734023348f4e06f8f42e8110e4)
@@ -492,10 +492,12 @@
 {
 	if (dev) {
+		/* Destroy existing pipes. */
+		destroy_current_pipes(dev);
 		/* Ignore errors and hope for the best. */
-		destroy_current_pipes(dev);
-
+		usb_hc_connection_deinitialize(&dev->hc_conn);
 		usb_alternate_interfaces_deinit(&dev->alternate_interfaces);
 		usb_device_release_descriptors(&dev->descriptors);
 		free(dev->driver_data);
+		dev->driver_data = NULL;
 	}
 }
