Index: uspace/drv/uhci-rhd/port.c
===================================================================
--- uspace/drv/uhci-rhd/port.c	(revision 6cbe7dad3eadd8cd3b5d4e2b9d98081057e8621e)
+++ uspace/drv/uhci-rhd/port.c	(revision f20f9e2f7f3aa078996245ec8c975143e99bbd74)
@@ -91,4 +91,7 @@
 	assert(port_instance);
 
+	/* disable port, to avoid device confusion */
+	uhci_port_set_enabled(port, false);
+
 	while (1) {
 		/* read register value */
@@ -109,9 +112,12 @@
 			}
 
+			/* remove any old device */
+			if (port_instance->attached_device) {
+				uhci_port_remove_device(port_instance);
+			}
+
 			if (port_status & STATUS_CONNECTED) {
 				/* new device */
 				uhci_port_new_device(port_instance);
-			} else {
-				uhci_port_remove_device(port_instance);
 			}
 
