Index: uspace/lib/usb/include/usb/classes/hid.h
===================================================================
--- uspace/lib/usb/include/usb/classes/hid.h	(revision 8f840ed561373855757c41144f98caed6c63ad9e)
+++ uspace/lib/usb/include/usb/classes/hid.h	(revision d972534030c0c8c8ff0b6e219a0562629b820016)
@@ -50,4 +50,10 @@
 	USB_HIDREQ_SET_PROTOCOL = 11
 } usb_hid_request_t;
+
+typedef enum {
+	USB_HID_REPORT_TYPE_INPUT = 1,
+	USB_HID_REPORT_TYPE_OUTPUT = 2,
+	USB_HID_REPORT_TYPE_FEATURE = 3
+} usb_hid_report_type_t;
 
 /** USB/HID subclass constants. */
Index: uspace/lib/usb/include/usb/classes/hidparser.h
===================================================================
--- uspace/lib/usb/include/usb/classes/hidparser.h	(revision 8f840ed561373855757c41144f98caed6c63ad9e)
+++ uspace/lib/usb/include/usb/classes/hidparser.h	(revision d972534030c0c8c8ff0b6e219a0562629b820016)
@@ -83,4 +83,13 @@
 } usb_hid_modifiers_t;
 
+typedef enum {
+	USB_HID_LED_NUM_LOCK = 0x1,
+	USB_HID_LED_CAPS_LOCK = 0x2,
+	USB_HID_LED_SCROLL_LOCK = 0x4,
+	USB_HID_LED_COMPOSE = 0x8,
+	USB_HID_LED_KANA = 0x10,
+	USB_HID_LED_COUNT = 5
+} usb_hid_led_t;
+
 static const usb_hid_modifiers_t 
     usb_hid_modifiers_consts[USB_HID_MOD_COUNT] = {
@@ -94,4 +103,12 @@
 	USB_HID_MOD_RGUI
 };
+
+//static const usb_hid_led_t usb_hid_led_consts[USB_HID_LED_COUNT] = {
+//	USB_HID_LED_NUM_LOCK,
+//	USB_HID_LED_CAPS_LOCK,
+//	USB_HID_LED_SCROLL_LOCK,
+//	USB_HID_LED_COMPOSE,
+//	USB_HID_LED_KANA
+//};
 
 //#define USB_HID_BOOT_KEYBOARD_NUM_LOCK		0x01
Index: uspace/lib/usb/src/hidparser.c
===================================================================
--- uspace/lib/usb/src/hidparser.c	(revision 8f840ed561373855757c41144f98caed6c63ad9e)
+++ uspace/lib/usb/src/hidparser.c	(revision d972534030c0c8c8ff0b6e219a0562629b820016)
@@ -144,10 +144,9 @@
 int usb_hid_boot_keyboard_output_report(uint8_t leds, uint8_t *data, size_t size)
 {
-	if(size != 1){
+	if(size < 2){
 		return -1;
 	}
 
-	/* used only first five bits, others are only padding*/
-	*data = leds;
+	data[1] = leds;
 	return EOK;
 }
