Index: uspace/drv/uhci-hcd/main.c
===================================================================
--- uspace/drv/uhci-hcd/main.c	(revision 6cbe7dad3eadd8cd3b5d4e2b9d98081057e8621e)
+++ uspace/drv/uhci-hcd/main.c	(revision 6495e71f384915dd3fc39443ce0ed8df687e65ca)
@@ -61,4 +61,5 @@
 };
 /*----------------------------------------------------------------------------*/
+#ifdef USE_INTERRUPTS
 static void irq_handler(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *call)
 {
@@ -69,4 +70,5 @@
 	uhci_interrupt(hc, status);
 }
+#endif
 /*----------------------------------------------------------------------------*/
 #define CHECK_RET_RETURN(ret, message...) \
@@ -95,6 +97,8 @@
 	    io_reg_base, io_reg_size, irq);
 
+#ifdef USE_INTERRUPTS
 	ret = pci_enable_interrupts(device);
 	CHECK_RET_RETURN(ret, "Failed(%d) to get enable interrupts:\n", ret);
+#endif
 
 	uhci_t *uhci_hc = malloc(sizeof(uhci_t));
@@ -114,5 +118,5 @@
 	 */
 	device->driver_data = uhci_hc;
-
+#ifdef USE_INTERRUPTS
 	ret = register_interrupt_handler(device, irq, irq_handler,
 	    &uhci_hc->interrupt_code);
@@ -123,4 +127,5 @@
 		return ret;
 	}
+#endif
 
 	ddf_fun_t *rh;
Index: uspace/drv/uhci-hcd/uhci.c
===================================================================
--- uspace/drv/uhci-hcd/uhci.c	(revision 6cbe7dad3eadd8cd3b5d4e2b9d98081057e8621e)
+++ uspace/drv/uhci-hcd/uhci.c	(revision 6495e71f384915dd3fc39443ce0ed8df687e65ca)
@@ -141,5 +141,7 @@
 
 	instance->cleaner = fibril_create(uhci_interrupt_emulator, instance);
-//	fibril_add_ready(instance->cleaner);
+#ifndef USE_INTERRUTPS
+	fibril_add_ready(instance->cleaner);
+#endif
 
 	instance->debug_checker = fibril_create(uhci_debug_checker, instance);
@@ -294,4 +296,5 @@
 		uint16_t status = pio_read_16(&instance->registers->usbsts);
 		uhci_interrupt(instance, status);
+		pio_write_16(&instance->registers->usbsts, 0x1f);
 		async_usleep(UHCI_CLEANER_TIMEOUT);
 	}
