Index: uspace/drv/bus/usb/uhcirh/port.c
===================================================================
--- uspace/drv/bus/usb/uhcirh/port.c	(revision 32ec567100de28432275d239d22a7f71e40208f8)
+++ uspace/drv/bus/usb/uhcirh/port.c	(revision 0d103aef79ca5d6b82df2eec9eab93e74195627e)
@@ -165,14 +165,4 @@
 			continue;
 
-		usb_log_debug("%s: Connected change detected: %x.\n",
-		    instance->id_string, port_status);
-
-		/* Remove any old device */
-		if (instance->attached_device.fun) {
-			usb_log_debug2("%s: Removing device.\n",
-			    instance->id_string);
-			uhci_port_remove_device(instance);
-		}
-
 		int ret =
 		    usb_hc_connection_open(&instance->hc_connection);
@@ -182,4 +172,15 @@
 			continue;
 		}
+
+		usb_log_debug("%s: Connected change detected: %x.\n",
+		    instance->id_string, port_status);
+
+		/* Remove any old device */
+		if (instance->attached_device.fun) {
+			usb_log_debug2("%s: Removing device.\n",
+			    instance->id_string);
+			uhci_port_remove_device(instance);
+		}
+
 
 		if ((port_status & STATUS_CONNECTED) != 0) {
Index: uspace/lib/usbdev/src/hub.c
===================================================================
--- uspace/lib/usbdev/src/hub.c	(revision 32ec567100de28432275d239d22a7f71e40208f8)
+++ uspace/lib/usbdev/src/hub.c	(revision 0d103aef79ca5d6b82df2eec9eab93e74195627e)
@@ -57,5 +57,6 @@
 		assert((conn)); \
 		if (!usb_hc_connection_is_opened((conn))) { \
-			return ENOENT; \
+			usb_log_error("Connection not open.\n"); \
+			return ENOTCONN; \
 		} \
 	} while (false)
