Index: uspace/lib/cpp/Makefile
===================================================================
--- uspace/lib/cpp/Makefile	(revision a75f3e49cbb6594be1b37f6244cdee2de2db923e)
+++ uspace/lib/cpp/Makefile	(revision 5e5498e2ce0ea759ec67b9401b28f87219fc3408)
@@ -42,4 +42,5 @@
 	src/iostream.cpp \
 	src/locale.cpp \
+	src/mutex.cpp \
 	src/new.cpp \
 	src/string.cpp \
Index: uspace/lib/cpp/include/impl/mutex.hpp
===================================================================
--- uspace/lib/cpp/include/impl/mutex.hpp	(revision a75f3e49cbb6594be1b37f6244cdee2de2db923e)
+++ uspace/lib/cpp/include/impl/mutex.hpp	(revision 5e5498e2ce0ea759ec67b9401b28f87219fc3408)
@@ -30,12 +30,14 @@
 #define LIBCPP_MUTEX
 
+#include <internal/common.hpp>
 #include <thread>
-
-extern "C" {
-#include <fibril_synch.h>
-}
 
 namespace std
 {
+    extern "C" {
+    #include <fibril.h>
+    #include <fibril_synch.h>
+    }
+
     /**
      * 20.4.1.2.1, class mutex:
Index: uspace/lib/cpp/include/impl/thread.hpp
===================================================================
--- uspace/lib/cpp/include/impl/thread.hpp	(revision a75f3e49cbb6594be1b37f6244cdee2de2db923e)
+++ uspace/lib/cpp/include/impl/thread.hpp	(revision 5e5498e2ce0ea759ec67b9401b28f87219fc3408)
@@ -34,11 +34,11 @@
 #include <ostream>
 
-extern "C" {
-    #include <fibril.h>
-    #include <fibril_synch.h>
-}
-
 namespace std
 {
+    extern "C" {
+        #include <fibril.h>
+        #include <fibril_synch.h>
+    }
+
     namespace aux
     {
@@ -225,5 +225,5 @@
             auto usecs = chrono::duration_cast<chrono::duration<typename Duration::rep, micro>>(abs_time - now);
 
-            std::fibril_usleep(usecs.count());
+            fibril_usleep(usecs.count());
         }
 
@@ -236,5 +236,5 @@
             // TODO: timeouts?
             auto usecs = chrono::duration_cast<chrono::duration<Rep, micro>>(rel_time);
-            std::fibril_usleep(usecs.count());
+            fibril_usleep(usecs.count());
         }
     }
@@ -246,5 +246,5 @@
     {
         public:
-            id() noexcept
+            constexpr id() noexcept
                 : id_{}
             { /* DUMMY BODY */ }
Index: uspace/lib/cpp/src/mutex.cpp
===================================================================
--- uspace/lib/cpp/src/mutex.cpp	(revision a75f3e49cbb6594be1b37f6244cdee2de2db923e)
+++ uspace/lib/cpp/src/mutex.cpp	(revision 5e5498e2ce0ea759ec67b9401b28f87219fc3408)
@@ -31,5 +31,5 @@
 namespace std
 {
-    mutex::mutex()
+    constexpr mutex::mutex() noexcept
         : mtx_{}
     {
@@ -71,5 +71,5 @@
     }
 
-    recursive_mutex::recursive_mutex()
+    constexpr recursive_mutex::recursive_mutex() noexcept
         : mtx_{}, lock_level_{}, owner_{}
     {
