Index: uspace/lib/usb/src/hidparser.c
===================================================================
--- uspace/lib/usb/src/hidparser.c	(revision 3de529cdb043028fce4390a80762314ea8568684)
+++ uspace/lib/usb/src/hidparser.c	(revision 8bec4d135a827923bd762e497c465c6b29829c0f)
@@ -119,9 +119,9 @@
 	}
 	link_initialize(&(report_item->link));	
-	
+
 	while(i<size){	
 		if(!USB_HID_ITEM_IS_LONG(data[i])){
 
-			if((i+1) >= size){
+			if((i+USB_HID_ITEM_SIZE(data[i]))>= size){
 				return -1; // TODO ERROR CODE
 			}
@@ -200,5 +200,4 @@
 	}
 	
-
 	return EOK;
 }
@@ -326,8 +325,10 @@
 		case USB_HID_REPORT_TAG_COLLECTION:
 			// TODO
+			return USB_HID_NO_ACTION;
 			break;
 			
 		case USB_HID_REPORT_TAG_END_COLLECTION:
 			/* should be ignored */
+			return USB_HID_NO_ACTION;
 			break;
 		default:
@@ -335,5 +336,5 @@
 	}
 
-	return USB_HID_NO_ACTION;
+	return EOK;
 }
 
