Index: uspace/lib/c/generic/elf/elf_load.c
===================================================================
--- uspace/lib/c/generic/elf/elf_load.c	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/c/generic/elf/elf_load.c	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -112,5 +112,4 @@
 	pcb->dynamic = info->finfo.dynamic;
 	pcb->rtld_runtime = info->env;
-	pcb->cpp_data = info->finfo.cpp_data;
 }
 
Index: uspace/lib/c/generic/elf/elf_mod.c
===================================================================
--- uspace/lib/c/generic/elf/elf_mod.c	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/c/generic/elf/elf_mod.c	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -200,6 +200,4 @@
 	elf->info->interp = NULL;
 	elf->info->dynamic = NULL;
-	elf->info->cpp_data.ctors_count = 0;
-	elf->info->cpp_data.dtors_count = 0;
 
 	if (phdr_len > sizeof(phdr)) {
Index: uspace/lib/c/include/loader/pcb.h
===================================================================
--- uspace/lib/c/include/loader/pcb.h	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/c/include/loader/pcb.h	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -75,6 +75,4 @@
 	/** Pointer to dynamic linker state structure (rtld_t). */
 	void *rtld_runtime;
-	/** C++ related data. */
-	cpp_data_t cpp_data;
 } pcb_t;
 
Index: uspace/lib/cpp/include/__bits/random.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/random.hpp	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/cpp/include/__bits/random.hpp	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -1030,10 +1030,10 @@
              *       something better.
              */
-            hel::srandom(hel::time(nullptr));
+            hel::srand(hel::time(nullptr));
         }
 
         result_type operator()()
         {
-            return hel::random();
+            return hel::rand();
         }
 
Index: uspace/lib/cpp/include/__bits/stdexcept.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/stdexcept.hpp	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/cpp/include/__bits/stdexcept.hpp	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -49,5 +49,5 @@
 
         protected:
-            const char* what_;
+            char* what_;
     };
 
@@ -96,5 +96,5 @@
 
         protected:
-            const char* what_;
+            char* what_;
     };
 
Index: uspace/lib/cpp/include/__bits/thread/threading.hpp
===================================================================
--- uspace/lib/cpp/include/__bits/thread/threading.hpp	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/cpp/include/__bits/thread/threading.hpp	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -33,4 +33,5 @@
 {
     extern "C" {
+        #include <async.h>
         #include <fibril.h>
         #include <fibril_synch.h>
@@ -157,5 +158,5 @@
             static void sleep(time_unit time)
             {
-                hel::fibril_usleep(time);
+                hel::async_usleep(time);
             }
         };
Index: uspace/lib/cpp/include/csetjmp
===================================================================
--- uspace/lib/cpp/include/csetjmp	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/cpp/include/csetjmp	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -32,8 +32,13 @@
 #include <__bits/common.hpp>
 
+/**
+ * TODO: Currently the <setjmp.h> header uses
+ *       _Noreturn, which is not available in C++.
+ */
+
 namespace std::hel
 {
     extern "C" {
-        #include <setjmp.h>
+        //#include <setjmp.h>
     }
 }
@@ -41,10 +46,10 @@
 namespace std
 {
-    using std::hel::jmp_buf;
-    using std::hel::longjmp;
+    /* using std::hel::jmp_buf; */
+    /* using std::hel::longjmp; */
 }
 
-using std::hel::jmp_buf;
-using std::hel::longjmp;
+/* using std::hel::jmp_buf; */
+/* using std::hel::longjmp; */
 
 #endif
Index: uspace/lib/cpp/include/cstdlib
===================================================================
--- uspace/lib/cpp/include/cstdlib	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/cpp/include/cstdlib	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -78,6 +78,6 @@
     /* using std::hel::wcstombs; */
 
-    using std::hel::random; // Supposed to be rand.
-    using std::hel::srandom; // Supposed to be srand.
+    using std::hel::rand;
+    using std::hel::srand;
     using std::hel::qsort;
     /* using std::hel::bsearch; */
@@ -127,6 +127,6 @@
 /* using std::hel::wcstombs; */
 
-using std::hel::random; // Supposed to be rand.
-using std::hel::srandom; // Supposed to be srand.
+using std::hel::rand;
+using std::hel::srand;
 using std::hel::qsort;
 /* using std::hel::bsearch; */
Index: uspace/lib/cpp/src/string.cpp
===================================================================
--- uspace/lib/cpp/src/string.cpp	(revision b57a3eeb719e9e5b79cc78424c1aa35aaecdb4d0)
+++ uspace/lib/cpp/src/string.cpp	(revision c735afb91b560262eba129b63224deeed8037d5a)
@@ -99,4 +99,9 @@
     }
 
+    namespace hel
+    {
+        extern "C" int asprintf(char**, const char*, ...);
+    }
+
     string to_string(int val)
     {
