Index: uspace/lib/usb/src/recognise.c
===================================================================
--- uspace/lib/usb/src/recognise.c	(revision 3b77628b520eb4eb2108181a33848556e4d06e36)
+++ uspace/lib/usb/src/recognise.c	(revision 89acf204d409b78538c6c0af3443ecfd1985b922)
@@ -359,4 +359,13 @@
 {
 	static size_t device_name_index = 0;
+	static FIBRIL_MUTEX_INITIALIZE(device_name_index_mutex);
+
+	size_t this_device_name_index;
+
+	fibril_mutex_lock(&device_name_index_mutex);
+	this_device_name_index = device_name_index;
+	device_name_index++;
+	fibril_mutex_unlock(&device_name_index_mutex);
+
 
 	device_t *child = NULL;
@@ -374,5 +383,5 @@
 	 * naming etc., something more descriptive could be created.
 	 */
-	rc = asprintf(&child_name, "usbdev%02zu", device_name_index);
+	rc = asprintf(&child_name, "usbdev%02zu", this_device_name_index);
 	if (rc < 0) {
 		goto failure;
@@ -396,6 +405,4 @@
 	}
 	
-	device_name_index++;
-
 	return EOK;
 
