Index: uspace/drv/ohci/hc.c
===================================================================
--- uspace/drv/ohci/hc.c	(revision 506d3304a9e494319951e89a619b5c1bad221a58)
+++ uspace/drv/ohci/hc.c	(revision 049eb877f0d0f895e826c16311bcf58d26511f0a)
@@ -183,4 +183,12 @@
 	 * maintain reset for at least the time specified in USB spec (50 ms)*/
 	async_usleep(50000);
+
+	/* turn off legacy emulation */
+	volatile uint32_t *ohci_emulation_reg =
+	    (uint32_t*)((char*)instance->registers + 0x100);
+	usb_log_info("OHCI legacy register status %p: %x.\n",
+		ohci_emulation_reg, *ohci_emulation_reg);
+	*ohci_emulation_reg = 0;
+
 }
 /*----------------------------------------------------------------------------*/
Index: uspace/lib/usb/src/host/device_keeper.c
===================================================================
--- uspace/lib/usb/src/host/device_keeper.c	(revision 506d3304a9e494319951e89a619b5c1bad221a58)
+++ uspace/lib/usb/src/host/device_keeper.c	(revision 049eb877f0d0f895e826c16311bcf58d26511f0a)
@@ -128,4 +128,6 @@
 		/* recipient is endpoint, value is zero (ENDPOINT_STALL) */
 		if (((data[0] & 0xf) == 1) && ((data[2] | data[3]) == 0)) {
+			link_t *current =
+			    instance->devices[target.address].endpoints.next;
 			while (current !=
 			   &instance->devices[target.address].endpoints)
