Index: uspace/drv/usbhid/kbd/kbddev.c
===================================================================
--- uspace/drv/usbhid/kbd/kbddev.c	(revision eb393ad5593c125b3b9d58400209c162dcdec017)
+++ uspace/drv/usbhid/kbd/kbddev.c	(revision 65131108cc3304461f799015fcdbad5caed8f764)
@@ -304,29 +304,33 @@
 	usb_log_debug("Creating output report:\n");
 
-	usb_hid_report_field_t *field = usb_hid_report_get_sibling (hid_dev->parser, NULL,
-                kbd_dev->led_path, 
-				USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY | USB_HID_PATH_COMPARE_END,
-				USB_HID_REPORT_TYPE_OUTPUT);
-	while(field != NULL) {
-
-		if((field->usage == USB_HID_LED_NUM_LOCK) && (kbd_dev->mods & KM_NUM_LOCK)){
+	usb_hid_report_field_t *field = usb_hid_report_get_sibling(
+	    hid_dev->report, NULL, kbd_dev->led_path, 
+	    USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY | USB_HID_PATH_COMPARE_END,
+	    USB_HID_REPORT_TYPE_OUTPUT);
+	
+	while (field != NULL) {
+
+		if ((field->usage == USB_HID_LED_NUM_LOCK) 
+		    && (kbd_dev->mods & KM_NUM_LOCK)){
 			field->value = 1;
 		}
 
-		if((field->usage == USB_HID_LED_CAPS_LOCK) && (kbd_dev->mods & KM_CAPS_LOCK)){
+		if ((field->usage == USB_HID_LED_CAPS_LOCK) 
+		    && (kbd_dev->mods & KM_CAPS_LOCK)){
 			field->value = 1;
 		}
 
-		if((field->usage == USB_HID_LED_SCROLL_LOCK) && (kbd_dev->mods & KM_SCROLL_LOCK)){
+		if ((field->usage == USB_HID_LED_SCROLL_LOCK) 
+		    && (kbd_dev->mods & KM_SCROLL_LOCK)){
 			field->value = 1;
 		}
 		
-		field = usb_hid_report_get_sibling (hid_dev->parser, field,
-                kbd_dev->led_path, 
-				USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY | USB_HID_PATH_COMPARE_END,
-				USB_HID_REPORT_TYPE_OUTPUT);
-	}
-		
-	int rc = usb_hid_report_output_translate(hid_dev->parser, 0,
+		field = usb_hid_report_get_sibling(hid_dev->report, field,
+		    kbd_dev->led_path, USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY 
+		    | USB_HID_PATH_COMPARE_END, USB_HID_REPORT_TYPE_OUTPUT);
+	}
+	
+	// TODO: what about the Report ID?
+	int rc = usb_hid_report_output_translate(hid_dev->report, 0,
 	    kbd_dev->output_buffer, kbd_dev->output_size);
 	
@@ -336,6 +340,4 @@
 		return;
 	}
-	
-	// TODO: output translating does not work!!
 	
 	usb_log_debug("Output report buffer: %s\n", 
@@ -672,9 +674,11 @@
 
 	uint8_t report_id;
-	int rc = usb_hid_parse_report(hid_dev->parser, buffer, actual_size, &report_id);	
+	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->parser, 
-	                    NULL, path, USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 
-						USB_HID_REPORT_TYPE_INPUT);
+	
+	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);
@@ -687,7 +691,7 @@
 	// fill in the currently pressed keys
 	
-	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);
+	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;
 	
Index: uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c
===================================================================
--- uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c	(revision eb393ad5593c125b3b9d58400209c162dcdec017)
+++ uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c	(revision 65131108cc3304461f799015fcdbad5caed8f764)
@@ -83,10 +83,16 @@
 
 	uint8_t report_id;
-	int rc = usb_hid_parse_report(hid_dev->parser, buffer, buffer_size, &report_id);
+	
+	int rc = usb_hid_parse_report(hid_dev->report, buffer, buffer_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_REPORT_TYPE_INPUT);
-	while(field != NULL) {
-		usb_log_debug("KEY VALUE(%X) USAGE(%X)\n", field->value, field->usage);
+	usb_hid_report_field_t *field = usb_hid_report_get_sibling(
+	    hid_dev->report, NULL, path, USB_HID_PATH_COMPARE_END , 
+	    USB_HID_REPORT_TYPE_INPUT);
+	
+	while (field != NULL) {
+		usb_log_debug("KEY VALUE(%X) USAGE(%X)\n", field->value, 
+		    field->usage);
 	}
 	
