Index: uspace/drv/usbhid/kbddev.c
===================================================================
--- uspace/drv/usbhid/kbddev.c	(revision e69f10b2b660db6ce1d165fda954a13cef74709f)
+++ uspace/drv/usbhid/kbddev.c	(revision a8def7d8500034405ad3c075274cb7b3e4d8745b)
@@ -459,5 +459,5 @@
 			usbhid_kbd_push_ev(kbd_dev, KEY_PRESS, key);
 			usbhid_kbd_repeat_start(kbd_dev, key);
-		} else {size_t
+		} else {
 			// found, nothing happens
 		}
@@ -502,5 +502,5 @@
 
 	usb_log_debug("Got keys from parser: %s\n", 
-	    usb_debug_str_buffer(key_codes, kbd_dev->key_count, 0));
+	    usb_debug_str_buffer(key_codes, count, 0));
 	
 	if (count != kbd_dev->key_count) {
@@ -535,4 +535,7 @@
                                     uint8_t *buffer, size_t actual_size)
 {
+	assert(kbd_dev->initialized);
+	assert(kbd_dev->hid_dev->parser != NULL);
+	
 	usb_hid_report_in_callbacks_t *callbacks =
 	    (usb_hid_report_in_callbacks_t *)malloc(
@@ -617,6 +620,4 @@
 	}
 
-	usb_hid_free_report_parser((*kbd_dev)->parser);
-	
 	free(*kbd_dev);
 	*kbd_dev = NULL;
Index: uspace/drv/usbhid/kbddev.h
===================================================================
--- uspace/drv/usbhid/kbddev.h	(revision e69f10b2b660db6ce1d165fda954a13cef74709f)
+++ uspace/drv/usbhid/kbddev.h	(revision a8def7d8500034405ad3c075274cb7b3e4d8745b)
@@ -100,6 +100,4 @@
 	/** Mutex for accessing the information about auto-repeat. */
 	fibril_mutex_t *repeat_mtx;
-
-	usb_hid_report_parser_t *parser;
 	
 	/** State of the structure (for checking before use). */
