Index: uspace/lib/c/generic/fibril.c
===================================================================
--- uspace/lib/c/generic/fibril.c	(revision 5035ba05f0dcb66a61ad5e5722c225bf1d375437)
+++ uspace/lib/c/generic/fibril.c	(revision 650cd225f985cd496777b353cb40a0d0a52641f8)
@@ -114,7 +114,12 @@
 	fibril->waits_for = NULL;
 
-	futex_lock(&fibril_futex);
+	/*
+	 * We are called before __tcb_set(), so we need to use
+	 * futex_down/up() instead of futex_lock/unlock() that
+	 * may attempt to access TLS.
+	 */
+	futex_down(&fibril_futex);
 	list_append(&fibril->all_link, &fibril_list);
-	futex_unlock(&fibril_futex);
+	futex_up(&fibril_futex);
 	
 	return fibril;
