Index: uspace/lib/c/generic/thread/fibril_synch.c
===================================================================
--- uspace/lib/c/generic/thread/fibril_synch.c	(revision f0378c6125b13b54a641dc5b1c1bd177020d4498)
+++ uspace/lib/c/generic/thread/fibril_synch.c	(revision d5409daa794d9384555eb540e3baaaa8b6a8600c)
@@ -160,11 +160,4 @@
 {
 	check_fibril_for_deadlock(oi, fibril_self());
-}
-
-void fibril_mutex_initialize(fibril_mutex_t *fm)
-{
-	fm->oi.owned_by = NULL;
-	fm->counter = 1;
-	list_initialize(&fm->waiters);
 }
 
Index: uspace/lib/c/include/adt/list.h
===================================================================
--- uspace/lib/c/include/adt/list.h	(revision f0378c6125b13b54a641dc5b1c1bd177020d4498)
+++ uspace/lib/c/include/adt/list.h	(revision d5409daa794d9384555eb540e3baaaa8b6a8600c)
@@ -183,5 +183,5 @@
  *
  */
-_NO_TRACE static inline void list_initialize(list_t *list)
+_NO_TRACE static inline __CONSTEXPR void list_initialize(list_t *list)
 {
 	list->head.prev = &list->head;
Index: uspace/lib/c/include/fibril_synch.h
===================================================================
--- uspace/lib/c/include/fibril_synch.h	(revision f0378c6125b13b54a641dc5b1c1bd177020d4498)
+++ uspace/lib/c/include/fibril_synch.h	(revision d5409daa794d9384555eb540e3baaaa8b6a8600c)
@@ -153,5 +153,17 @@
 extern void __fibril_synch_fini(void);
 
-extern void fibril_mutex_initialize(fibril_mutex_t *);
+/** Initialize fibril mutex.
+ *
+ * Kept as in-line to allow constexpr marker for C++ library where this
+ * is used by C++ mutex type (list initialization are two assignments
+ * so it is actually reasonable to have this inlined).
+ */
+static inline __CONSTEXPR void fibril_mutex_initialize(fibril_mutex_t *fm)
+{
+	fm->oi.owned_by = NULL;
+	fm->counter = 1;
+	list_initialize(&fm->waiters);
+}
+
 extern void fibril_mutex_lock(fibril_mutex_t *);
 extern bool fibril_mutex_trylock(fibril_mutex_t *);
Index: uspace/lib/cpp/include/__bits/thread/threading.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/thread/threading.hpp	(revision f0378c6125b13b54a641dc5b1c1bd177020d4498)
+++ uspace/lib/cpp/include/__bits/thread/threading.hpp	(revision d5409daa794d9384555eb540e3baaaa8b6a8600c)
@@ -87,5 +87,5 @@
         struct mutex
         {
-            static void init(mutex_type& mtx)
+            static constexpr void init(mutex_type& mtx)
             {
                 ::helenos::fibril_mutex_initialize(&mtx);
