Index: uspace/drv/uhci-hcd/hc.c
===================================================================
--- uspace/drv/uhci-hcd/hc.c	(revision 65131108cc3304461f799015fcdbad5caed8f764)
+++ uspace/drv/uhci-hcd/hc.c	(revision f240d30763cebda64838465333c6bcffb2029c84)
@@ -330,5 +330,5 @@
 {
 	assert(instance);
-//	status |= 1; //Uncomment to work around qemu hang
+	status |= 1; //Uncomment to work around qemu hang
 	/* Lower 2 bits are transaction error and transaction complete */
 	if (status & (UHCI_STATUS_INTERRUPT | UHCI_STATUS_ERROR_INTERRUPT)) {
Index: uspace/drv/usbhid/kbd/kbddev.c
===================================================================
--- uspace/drv/usbhid/kbd/kbddev.c	(revision 65131108cc3304461f799015fcdbad5caed8f764)
+++ uspace/drv/usbhid/kbd/kbddev.c	(revision f240d30763cebda64838465333c6bcffb2029c84)
@@ -676,11 +676,4 @@
 	int rc = usb_hid_parse_report(hid_dev->report, buffer, actual_size, 
 	    &report_id);
-	usb_hid_report_path_set_report_id (path, report_id);
-	
-	usb_hid_report_field_t *field = usb_hid_report_get_sibling(
-	    hid_dev->report, NULL, path, USB_HID_PATH_COMPARE_END 
-	    | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, USB_HID_REPORT_TYPE_INPUT);
-
-	usb_hid_report_path_free(path);
 	
 	if (rc != EOK) {
@@ -689,20 +682,17 @@
 	}
 	
+	usb_hid_report_path_set_report_id (path, report_id);
+	
 	// fill in the currently pressed keys
 	
-	field = usb_hid_report_get_sibling(hid_dev->report, NULL, path, 
+	usb_hid_report_field_t *field = usb_hid_report_get_sibling(
+	    hid_dev->report, NULL, path, 
 	    USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 
 	    USB_HID_REPORT_TYPE_INPUT);
 	unsigned i = 0;
 	
-	// TODO: remove this hack - skipping first field
-	field = usb_hid_report_get_sibling(hid_dev->report, field, path, 
-	    USB_HID_PATH_COMPARE_END 
-	    | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 
-	    USB_HID_REPORT_TYPE_INPUT);
-	
 	while (field != NULL) {
 		usb_log_debug2("FIELD (%p) - VALUE(%d) USAGE(%u)\n", 
-		    field, field->value, field->usage);
+		    field, field->value, field->value);
 		
 		assert(i < kbd_dev->key_count);
@@ -712,5 +702,5 @@
 		
 		// save the key usage
-		kbd_dev->keys[i] = field->usage;
+		kbd_dev->keys[i] = field->value;
 		usb_log_debug2("Saved %u. key usage %d\n", i, kbd_dev->keys[i]);
 		
Index: uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c
===================================================================
--- uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c	(revision 65131108cc3304461f799015fcdbad5caed8f764)
+++ uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c	(revision f240d30763cebda64838465333c6bcffb2029c84)
@@ -93,5 +93,5 @@
 	
 	while (field != NULL) {
-		usb_log_debug("KEY VALUE(%X) USAGE(%X)\n", field->value, 
+		usb_log_debug(NAME " KEY VALUE(%X) USAGE(%X)\n", field->value, 
 		    field->usage);
 	}
@@ -101,5 +101,5 @@
 	
 	if (rc != EOK) {
-		usb_log_warning("Error in usb_hid_boot_keyboard_input_report():"
+		usb_log_warning(NAME "Error in usb_hid_boot_keyboard_input_report():"
 		    "%s\n", str_error(rc));
 	}
