Index: uspace/drv/uhci-hcd/batch.c
===================================================================
--- uspace/drv/uhci-hcd/batch.c	(revision 0063838d596ac0f7be665106c76752a20307ad35)
+++ uspace/drv/uhci-hcd/batch.c	(revision 3de48b510b1d85e0126b1adb9ecc3206e0c4e1dc)
@@ -140,5 +140,5 @@
 {
 	assert(instance);
-	usb_log_debug("Checking(%p) %d packet for completion.\n",
+	usb_log_debug2("Checking(%p) %d packet for completion.\n",
 	    instance, instance->packets);
 	instance->transfered_size = 0;
@@ -157,5 +157,4 @@
 		    transfer_descriptor_actual_size(&instance->tds[i]);
 	}
-	/* This is just an ugly trick to support the old API */
 	instance->transfered_size -= instance->setup_size;
 	return true;
Index: uspace/drv/uhci-hcd/main.c
===================================================================
--- uspace/drv/uhci-hcd/main.c	(revision 0063838d596ac0f7be665106c76752a20307ad35)
+++ uspace/drv/uhci-hcd/main.c	(revision 3de48b510b1d85e0126b1adb9ecc3206e0c4e1dc)
@@ -95,6 +95,6 @@
 	io_reg_size = 32;
 
-	ret = pci_enable_interrupts(device);
-	CHECK_RET_RETURN(ret, "Failed(%d) to get enable interrupts:\n", ret);
+//	ret = pci_enable_interrupts(device);
+//	CHECK_RET_RETURN(ret, "Failed(%d) to get enable interrupts:\n", ret);
 
 	uhci_t *uhci_hc = malloc(sizeof(uhci_t));
Index: uspace/drv/uhci-hcd/uhci.c
===================================================================
--- uspace/drv/uhci-hcd/uhci.c	(revision 0063838d596ac0f7be665106c76752a20307ad35)
+++ uspace/drv/uhci-hcd/uhci.c	(revision 3de48b510b1d85e0126b1adb9ecc3206e0c4e1dc)
@@ -143,5 +143,5 @@
 
 	instance->cleaner = fibril_create(uhci_interrupt_emulator, instance);
-//	fibril_add_ready(instance->cleaner);
+	fibril_add_ready(instance->cleaner);
 
 	instance->debug_checker = fibril_create(uhci_debug_checker, instance);
@@ -287,7 +287,7 @@
 {
 	assert(instance);
-	if ((status & (UHCI_STATUS_INTERRUPT | UHCI_STATUS_ERROR_INTERRUPT)) == 0)
-		return;
-	usb_log_debug2("UHCI interrupt: %X.\n", status);
+//	if ((status & (UHCI_STATUS_INTERRUPT | UHCI_STATUS_ERROR_INTERRUPT)) == 0)
+//		return;
+//	usb_log_debug2("UHCI interrupt: %X.\n", status);
 	transfer_list_remove_finished(&instance->transfers_interrupt);
 	transfer_list_remove_finished(&instance->transfers_control_slow);
@@ -304,5 +304,5 @@
 	while (1) {
 		uint16_t status = pio_read_16(&instance->registers->usbsts);
-		usb_log_debug2("UHCI status: %x.\n", status);
+//		usb_log_debug2("UHCI status: %x.\n", status);
 		status |= 1;
 		uhci_interrupt(instance, status);
@@ -321,6 +321,8 @@
 		const uint16_t sts = pio_read_16(&instance->registers->usbsts);
 		const uint16_t intr = pio_read_16(&instance->registers->usbintr);
-		usb_log_debug("Command: %X Status: %X Interrupts: %x\n",
-		    cmd, sts, intr);
+		if (((cmd & UHCI_CMD_RUN_STOP) != 1) || (sts != 0)) {
+			usb_log_debug2("Command: %X Status: %X Intr: %x\n",
+			    cmd, sts, intr);
+		}
 
 		uintptr_t frame_list =
Index: uspace/drv/uhci-rhd/port.c
===================================================================
--- uspace/drv/uhci-rhd/port.c	(revision 0063838d596ac0f7be665106c76752a20307ad35)
+++ uspace/drv/uhci-rhd/port.c	(revision 3de48b510b1d85e0126b1adb9ecc3206e0c4e1dc)
@@ -92,4 +92,5 @@
 	uhci_port_t *port_instance = port;
 	assert(port_instance);
+//	port_status_write(port_instance->address, 0);
 
 	while (1) {
@@ -103,5 +104,5 @@
 		usb_log_debug("Port %d status at %p: 0x%04x.\n",
 		  port_instance->number, port_instance->address, port_status);
-		print_port_status(port_status);
+//		print_port_status(port_status);
 		fibril_mutex_unlock(&dbg_mtx);
 
@@ -115,4 +116,8 @@
 			}
 
+			port_status_write(port_instance->address, port_status);
+			usb_log_debug("Change status ack on port %d.\n",
+			    port_instance->number);
+
 			/* remove any old device */
 			if (port_instance->attached_device) {
@@ -121,8 +126,4 @@
 				uhci_port_remove_device(port_instance);
 			}
-
-			port_status_write(port_instance->address, STATUS_CONNECTED_CHANGED);
-			usb_log_debug("Change status erased on port %d.\n",
-			    port_instance->number);
 
 			if (port_status & STATUS_CONNECTED) {
