Index: uspace/drv/usbhid/kbd/kbddev.c
===================================================================
--- uspace/drv/usbhid/kbd/kbddev.c	(revision fee6381880e50fadeff5f754a7e4305789512c34)
+++ uspace/drv/usbhid/kbd/kbddev.c	(revision 7f2e33a6374147a0d20faaeb1ea1722e44f86a96)
@@ -636,5 +636,5 @@
 	usb_hid_report_path_t *path = usb_hid_report_path();
 	usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_KEYBOARD, 0);
-	usb_hid_report_path_set_report_id(path, 1);
+	usb_hid_report_path_set_report_id(path, 0);
 	
 	int rc = usb_hid_parse_report(hid_dev->parser, buffer,
@@ -733,5 +733,5 @@
 	usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_KEYBOARD, 0);
 	
-	usb_hid_report_path_set_report_id(path, 1);
+	usb_hid_report_path_set_report_id(path, 0);
 	
 	kbd_dev->key_count = usb_hid_report_input_length(
Index: uspace/drv/usbhid/usbhid.c
===================================================================
--- uspace/drv/usbhid/usbhid.c	(revision fee6381880e50fadeff5f754a7e4305789512c34)
+++ uspace/drv/usbhid/usbhid.c	(revision 7f2e33a6374147a0d20faaeb1ea1722e44f86a96)
@@ -40,4 +40,5 @@
 #include <usb/classes/hidparser.h>
 #include <usb/classes/hidreport.h>
+#include <usb/classes/hidreq.h>
 #include <errno.h>
 
@@ -117,4 +118,5 @@
      size_t buffer_size, void *arg)
 {
+	usb_log_debug("Dummy polling callback.\n");
 	return false;
 }
@@ -177,4 +179,5 @@
 	rc = usb_hid_process_report_descriptor(hid_dev->usb_dev, 
 	    hid_dev->parser);
+	
 	if (rc != EOK) {
 		usb_log_warning("Could not process report descriptor.\n");
@@ -240,4 +243,6 @@
 		break;
 	default:
+//		usbhid_req_set_idle(&hid_dev->usb_dev->ctrl_pipe, 
+//		    hid_dev->usb_dev->interface_no, 0);
 		break;
 	}
Index: uspace/drv/usbhid/usbhid.ma
===================================================================
--- uspace/drv/usbhid/usbhid.ma	(revision fee6381880e50fadeff5f754a7e4305789512c34)
+++ uspace/drv/usbhid/usbhid.ma	(revision 7f2e33a6374147a0d20faaeb1ea1722e44f86a96)
@@ -1,2 +1,2 @@
-1000 usb&interface&class=HID&subclass=0x01&protocol=0x02
-1000 usb&interface&class=HID
+100 usb&interface&class=HID&subclass=0x01&protocol=0x02
+100 usb&interface&class=HID
Index: uspace/drv/usbkbd/kbddev.c
===================================================================
--- uspace/drv/usbkbd/kbddev.c	(revision fee6381880e50fadeff5f754a7e4305789512c34)
+++ uspace/drv/usbkbd/kbddev.c	(revision 7f2e33a6374147a0d20faaeb1ea1722e44f86a96)
@@ -614,5 +614,5 @@
 	usb_hid_report_path_t *path = usb_hid_report_path();
 	usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_KEYBOARD, 0);
-	usb_hid_report_path_set_report_id(path, 1);
+	usb_hid_report_path_set_report_id(path, 0);
 	
 	int rc = usb_hid_parse_report(kbd_dev->parser, buffer,
@@ -768,5 +768,5 @@
 	usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_KEYBOARD, 0);
 	
-	usb_hid_report_path_set_report_id(path, 1);
+	usb_hid_report_path_set_report_id(path, 0);
 	
 	kbd_dev->key_count = usb_hid_report_input_length(
Index: uspace/drv/usbkbd/usbkbd.ma
===================================================================
--- uspace/drv/usbkbd/usbkbd.ma	(revision fee6381880e50fadeff5f754a7e4305789512c34)
+++ uspace/drv/usbkbd/usbkbd.ma	(revision 7f2e33a6374147a0d20faaeb1ea1722e44f86a96)
@@ -1,1 +1,1 @@
-10 usb&interface&class=HID&subclass=0x01&protocol=0x01
+1000 usb&interface&class=HID&subclass=0x01&protocol=0x01
Index: uspace/lib/usb/src/devpoll.c
===================================================================
--- uspace/lib/usb/src/devpoll.c	(revision fee6381880e50fadeff5f754a7e4305789512c34)
+++ uspace/lib/usb/src/devpoll.c	(revision 7f2e33a6374147a0d20faaeb1ea1722e44f86a96)
@@ -66,4 +66,10 @@
 	usb_pipe_t *pipe
 	    = polling_data->dev->pipes[polling_data->pipe_index].pipe;
+	
+	usb_log_debug("Pipe interface number: %d, protocol: %d, subclass: %d, max packet size: %d\n", 
+	    polling_data->dev->pipes[polling_data->pipe_index].interface_no,
+	    polling_data->dev->pipes[polling_data->pipe_index].description->interface_protocol,
+	    polling_data->dev->pipes[polling_data->pipe_index].description->interface_subclass,
+	    pipe->max_packet_size);
 
 	size_t failed_attempts = 0;
@@ -83,4 +89,11 @@
 		/* Quit the session regardless of errors. */
 		usb_pipe_end_session(pipe);
+		
+//		if (rc == ESTALL) {
+//			usb_log_debug("Seding clear feature...\n");
+//			usb_request_clear_feature(pipe, USB_REQUEST_TYPE_STANDARD,
+//			  USB_REQUEST_RECIPIENT_ENDPOINT, 0, pipe->endpoint_no);
+//			continue;
+//		}
 
 		if (rc != EOK) {
