Index: uspace/lib/usb/src/hiddescriptor.c
===================================================================
--- uspace/lib/usb/src/hiddescriptor.c	(revision 1519b91bde3a457515476e53012100e2faf685d5)
+++ uspace/lib/usb/src/hiddescriptor.c	(revision b9d7965c030b36edbe57f98e48b3ec70bdefd5ea)
@@ -56,5 +56,5 @@
 #define USB_HID_UNKNOWN_TAG		-99
 
-void usb_hid_report_path_try_insert(usb_hid_report_t *report, usb_hid_report_path_t *cmp_path)
+usb_hid_report_path_t *usb_hid_report_path_try_insert(usb_hid_report_t *report, usb_hid_report_path_t *cmp_path)
 {
 	/* find or append current collection path to the list */
@@ -73,4 +73,9 @@
 		list_append(&path->link, &report->collection_paths);					
 		report->collection_paths_count++;
+
+		return path;
+	}
+	else {
+		return list_get_instance(path_it, usb_hid_report_path_t, link);
 	}
 }
@@ -113,5 +118,4 @@
 
 		/* fill the attributes */		
-		field->collection_path = path;
 		field->logical_minimum = report_item->logical_minimum;
 		field->logical_maximum = report_item->logical_maximum;
@@ -172,5 +176,5 @@
 		usb_hid_report_set_last_item(path, USB_HID_TAG_CLASS_LOCAL, field->usage);
 
-		usb_hid_report_path_try_insert(report, path);
+		field->collection_path = usb_hid_report_path_try_insert(report, path);
 
 		field->size = report_item->size;
@@ -647,6 +651,8 @@
 		usb_log_debug("\t\ttUSAGE: %X\n", report_item->usage);
 		usb_log_debug("\t\tUSAGE PAGE: %X\n", report_item->usage_page);
-						
-//		usb_log_debug("\n");		
+		
+		//usb_hid_print_usage_path(report_item->collection_path);
+
+		usb_log_debug("\n");		
 
 	}
