Index: uspace/drv/usbhub/main.c
===================================================================
--- uspace/drv/usbhub/main.c	(revision ea6a824f790b7d7257ea2c78d21cb8409ba556e9)
+++ uspace/drv/usbhub/main.c	(revision ba5ab0911b1cbe87ab32ec0e395bfb35e9d19df4)
@@ -42,5 +42,5 @@
 
 usb_general_list_t usb_hub_list;
-futex_t usb_hub_list_lock;
+fibril_mutex_t usb_hub_list_lock;
 
 static driver_ops_t hub_driver_ops = {
@@ -65,8 +65,9 @@
 {
 	usb_dprintf_enable(NAME, 0);
-
-	futex_initialize(&usb_hub_list_lock, 0);
+	
+	fibril_mutex_initialize(&usb_hub_list_lock);
+	fibril_mutex_lock(&usb_hub_list_lock);
 	usb_lst_init(&usb_hub_list);
-	futex_up(&usb_hub_list_lock);
+	fibril_mutex_unlock(&usb_hub_list_lock);
 
 	fid_t fid = fibril_create(usb_hub_control_loop, NULL);
Index: uspace/drv/usbhub/usbhub.c
===================================================================
--- uspace/drv/usbhub/usbhub.c	(revision ea6a824f790b7d7257ea2c78d21cb8409ba556e9)
+++ uspace/drv/usbhub/usbhub.c	(revision ba5ab0911b1cbe87ab32ec0e395bfb35e9d19df4)
@@ -203,7 +203,7 @@
 
 	//add the hub to list
-	futex_down(&usb_hub_list_lock);
+	fibril_mutex_lock(&usb_hub_list_lock);
 	usb_lst_append(&usb_hub_list, hub_info);
-	futex_up(&usb_hub_list_lock);
+	fibril_mutex_unlock(&usb_hub_list_lock);
 
 	dprintf(1, "hub info added to list");
@@ -445,9 +445,9 @@
 	 */
 	usb_general_list_t * lst_item;
-	futex_down(&usb_hub_list_lock);
+	fibril_mutex_lock(&usb_hub_list_lock);
 	for (lst_item = usb_hub_list.next;
 			lst_item != &usb_hub_list;
 			lst_item = lst_item->next) {
-		futex_up(&usb_hub_list_lock);
+		fibril_mutex_unlock(&usb_hub_list_lock);
 		usb_hub_info_t * hub_info = ((usb_hub_info_t*)lst_item->data);
 		/*
@@ -488,4 +488,5 @@
 
 		if (opResult != EOK) {
+			free(change_bitmap);
 			dprintf(1, "something went wrong while getting status of hub");
 			continue;
@@ -503,7 +504,7 @@
 
 		ipc_hangup(hc);
-		futex_down(&usb_hub_list_lock);
-	}
-	futex_up(&usb_hub_list_lock);
+		fibril_mutex_lock(&usb_hub_list_lock);
+	}
+	fibril_mutex_unlock(&usb_hub_list_lock);
 }
 
Index: uspace/drv/usbhub/usbhub_private.h
===================================================================
--- uspace/drv/usbhub/usbhub_private.h	(revision ea6a824f790b7d7257ea2c78d21cb8409ba556e9)
+++ uspace/drv/usbhub/usbhub_private.h	(revision ba5ab0911b1cbe87ab32ec0e395bfb35e9d19df4)
@@ -43,5 +43,5 @@
 #include <bool.h>
 #include <driver.h>
-#include <futex.h>
+#include <fibril_synch.h>
 
 #include <usb/usb.h>
@@ -82,5 +82,5 @@
 
 /** Lock for hub list*/
-extern futex_t usb_hub_list_lock;
+extern fibril_mutex_t usb_hub_list_lock;
 
 
