Index: uspace/drv/bus/usb/usbhub/port.c
===================================================================
--- uspace/drv/bus/usb/usbhub/port.c	(revision 229629d35e44cfe88f924a130ad369c5c4699b91)
+++ uspace/drv/bus/usb/usbhub/port.c	(revision 344a0acbd420565da0e55a0f408840c4987e6e76)
@@ -288,10 +288,23 @@
 	port->attached_device.fun = NULL;
 
-	ret = usb_hc_unregister_device(&hub->connection,
-	    port->attached_device.address);
-	if (ret != EOK) {
-		usb_log_warning("Failed to unregister address of the removed "
-		    "device: %s.\n", str_error(ret));
-	}
+	ret = usb_hc_connection_open(&hub->connection);
+	if (ret == EOK) {
+		ret = usb_hc_unregister_device(&hub->connection,
+		    port->attached_device.address);
+		if (ret != EOK) {
+			usb_log_warning("Failed to unregister address of the "
+			    "removed device: %s.\n", str_error(ret));
+		}
+		ret = usb_hc_connection_close(&hub->connection);
+		if (ret != EOK) {
+			usb_log_warning("Failed to close hc connection %s.\n",
+			    str_error(ret));
+		}
+
+	} else {
+		usb_log_warning("Failed to open hc connection %s.\n",
+		    str_error(ret));
+	}
+
 	port->attached_device.address = -1;
 	fibril_mutex_unlock(&port->mutex);
