Index: uspace/lib/usbdev/include/usb/dev/driver.h
===================================================================
--- uspace/lib/usbdev/include/usb/dev/driver.h	(revision 0cfb05eac7ee22a5dde91ef76d079e7ad73351f1)
+++ uspace/lib/usbdev/include/usb/dev/driver.h	(revision 8a01a0b98199d1f7f8f7829b048fec35603be0ce)
@@ -176,5 +176,5 @@
     const usb_endpoint_description_t **, const uint8_t *, size_t, int, int,
     usb_endpoint_mapping_t **, size_t *);
-int usb_device_destroy_pipes(const ddf_dev_t *, usb_endpoint_mapping_t *, size_t);
+int usb_device_destroy_pipes(usb_endpoint_mapping_t *, size_t);
 
 void * usb_device_data_alloc(usb_device_t *, size_t);
Index: uspace/lib/usbdev/src/devdrv.c
===================================================================
--- uspace/lib/usbdev/src/devdrv.c	(revision 0cfb05eac7ee22a5dde91ef76d079e7ad73351f1)
+++ uspace/lib/usbdev/src/devdrv.c	(revision 8a01a0b98199d1f7f8f7829b048fec35603be0ce)
@@ -205,6 +205,5 @@
 static int destroy_current_pipes(usb_device_t *dev)
 {
-	int rc = usb_device_destroy_pipes(dev->ddf_dev,
-	    dev->pipes, dev->pipes_count);
+	const int rc = usb_device_destroy_pipes(dev->pipes, dev->pipes_count);
 	if (rc != EOK) {
 		return rc;
@@ -423,9 +422,6 @@
  * @param[in] pipes_count Number of endpoints.
  */
-int usb_device_destroy_pipes(const ddf_dev_t *dev,
-    usb_endpoint_mapping_t *pipes, size_t pipes_count)
-{
-	assert(dev != NULL);
-
+int usb_device_destroy_pipes(usb_endpoint_mapping_t *pipes, size_t pipes_count)
+{
 	if (pipes_count == 0) {
 		assert(pipes == NULL);
@@ -434,22 +430,7 @@
 	assert(pipes != NULL);
 
-	int rc;
-
-	/* Prepare connection to HC to allow endpoint unregistering. */
-	usb_hc_connection_t hc_conn;
-	rc = usb_hc_connection_initialize_from_device(&hc_conn, dev);
-	if (rc != EOK) {
-		return rc;
-	}
-	/* Open connection to hc for pipe unregister. */
-	rc = usb_hc_connection_open(&hc_conn);
-	if (rc != EOK) {
-		return rc;
-	}
-
 	/* Destroy the pipes. */
-	size_t i;
-	for (i = 0; i < pipes_count; i++) {
-		usb_log_debug2("Unregistering pipe %zu (%spresent).\n",
+	for (size_t i = 0; i < pipes_count; ++i) {
+		usb_log_debug2("Unregistering pipe %zu: %spresent.\n",
 		    i, pipes[i].present ? "" : "not ");
 		if (pipes[i].present)
@@ -457,5 +438,4 @@
 	}
 
-	usb_hc_connection_close(&hc_conn);
 	free(pipes);
 
