Index: uspace/app/mkbd/main.c
===================================================================
--- uspace/app/mkbd/main.c	(revision a9cdca001904b2b7ac02564a296a1f38e7f62d7c)
+++ uspace/app/mkbd/main.c	(revision da56be27c9b3ae1c46c0f0f53d0a7f07864a7e38)
@@ -45,6 +45,6 @@
 #include <devmap.h>
 #include <usb/dev/hub.h>
-#include <usb/host.h>
-#include <usb/driver.h>
+//#include <usb/host.h>
+//#include <usb/driver.h>
 #include <usb/hid/iface.h>
 #include <usb/dev/pipes.h>
@@ -140,6 +140,17 @@
 	assert(report != NULL);
 	
+	printf("Calling usb_hid_parse_report() with size %zu and "
+	    "buffer: \n", size);
+	for (size_t i = 0; i < size; ++i) {
+		printf(" %X ", buffer[i]);
+	}
+	printf("\n");
+	
 	uint8_t report_id;
-	usb_hid_parse_report(report, buffer, size, &report_id);
+	int rc = usb_hid_parse_report(report, buffer, size, &report_id);
+	if (rc != EOK) {
+		printf("Error parsing report: %s\n", str_error(rc));
+		return;
+	}
 	
 	usb_hid_report_path_t *path = usb_hid_report_path();
@@ -196,5 +207,5 @@
 	
 	//char *devpath = argv[1];
-	const char *devpath = "/hw/pci0/00:06.0/ohci-rh/usb00_a2/HID0/hid";
+	const char *devpath = "/hw/pci0/00:06.0/ohci-rh/usb00_a2/HID1/hid";
 	
 	int rc;
@@ -269,5 +280,6 @@
 		}
 		
-		printf("Got buffer: %p, size: %zu\n", event, actual_size);
+		printf("Got buffer: %p, size: %zu, max size: %zu\n", event, 
+		    actual_size, size);
 		
 		print_key(event, size, report);
Index: uspace/drv/usbhid/generic/hiddev.c
===================================================================
--- uspace/drv/usbhid/generic/hiddev.c	(revision a9cdca001904b2b7ac02564a296a1f38e7f62d7c)
+++ uspace/drv/usbhid/generic/hiddev.c	(revision da56be27c9b3ae1c46c0f0f53d0a7f07864a7e38)
@@ -120,4 +120,6 @@
 	
 	if (hid_dev->input_report_size > size) {
+		usb_log_debug("input_report_size > size (%zu, %zu)\n", 
+		    hid_dev->input_report_size, size);
 		return EINVAL;	// TODO: other error code
 	}
@@ -125,4 +127,6 @@
 	/*! @todo This should probably be atomic. */
 	if (usb_hid_report_ready()) {
+		usb_log_debug("Report ready, size: %zu\n", 
+		    hid_dev->input_report_size);
 		memcpy(buffer, hid_dev->input_report, 
 		    hid_dev->input_report_size);
@@ -136,4 +140,5 @@
 	// note that we already received this report
 //	report_received = true;
+	usb_log_debug("OK\n");
 	
 	return EOK;
