diff --git a/pthreads-emb b/pthreads-emb
index 6720dfdc95246f85aeb1e867e0105d4eb43ad759..4b87ab0dcdbc58910b9683e3ce561fccea05386d 160000
--- a/pthreads-emb
+++ b/pthreads-emb
@@ -1 +1 @@
-Subproject commit 6720dfdc95246f85aeb1e867e0105d4eb43ad759
+Subproject commit 4b87ab0dcdbc58910b9683e3ce561fccea05386d
diff --git a/src/start.rs b/src/start.rs
index 5489bfad742f0bd9c8ed8ab1bf183f472775f09b..a83607367a9c43712d47e8763d5a900051999ce4 100644
--- a/src/start.rs
+++ b/src/start.rs
@@ -44,13 +44,6 @@ unsafe fn copy_string_array(array: *const *const c_char, len: usize) -> Vec<*mut
     vec
 }
 
-// In the case that pthread is not linked, pthread_init can be replaced
-#[linkage = "weak"]
-#[no_mangle]
-extern "C" fn pthread_init() -> c_int {
-    0
-}
-
 #[inline(never)]
 #[no_mangle]
 pub unsafe extern "C" fn relibc_start(sp: &'static Stack) -> ! {
@@ -85,9 +78,6 @@ pub unsafe extern "C" fn relibc_start(sp: &'static Stack) -> ! {
     stdio::stdout = stdio::default_stdout.get();
     stdio::stderr = stdio::default_stderr.get();
 
-    // Initialize pthreads
-    pthread_init();
-
     // Call init section
     _init();