Index: uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c
===================================================================
--- uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c	(revision 31cfee165e90948c9feaa73ec35b98d483ff01ca)
+++ uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c	(revision 7aaf403e958293e520864c89cbb7f64c387512fd)
@@ -300,7 +300,6 @@
 	usb_hid_report_path_set_report_id(path, 1);
 	
-	lgtch_dev->key_count = usb_hid_report_input_length(
-	    hid_dev->report, path, 
-	    USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY);
+	lgtch_dev->key_count = usb_hid_report_size(
+	    hid_dev->report, 0, USB_HID_REPORT_TYPE_INPUT);
 	usb_hid_report_path_free(path);
 	
@@ -400,5 +399,5 @@
 	    USB_HID_REPORT_TYPE_INPUT);
 	
-	unsigned int key;
+//	unsigned int key;
 	
 	/*! @todo Is this iterating OK if done multiple times? 
@@ -406,9 +405,11 @@
 	 */
 	while (field != NULL) {
-		usb_log_debug(NAME " KEY VALUE(%X) USAGE(%X)\n", field->value, 
-		    field->usage);
+		if(field->value != 0) {
+			usb_log_debug(NAME " KEY VALUE(%X) USAGE(%X)\n", field->value, 
+			    field->usage);
 		
-		key = usb_lgtch_map_usage(field->usage);
-		usb_lgtch_push_ev(hid_dev, KEY_PRESS, key);
+			//key = usb_lgtch_map_usage(field->usage);
+			usb_lgtch_push_ev(hid_dev, KEY_PRESS, field->usage);
+		}
 		
 		field = usb_hid_report_get_sibling(
