diff --git a/src/platform/redox/signal.rs b/src/platform/redox/signal.rs
index 86612fc1dd116f06ce1babce06466db59cbb01d4..25254ff262148b73cc1bc50c764806912ce6fce8 100644
--- a/src/platform/redox/signal.rs
+++ b/src/platform/redox/signal.rs
@@ -291,8 +291,10 @@ asmfunction!(__relibc_internal_sigentry: ["
     call {inner}
 
     add esp, 512
+    fxrstor [esp]
+
     mov eax, {SYS_SIGRETURN}
-    syscall
+    int 0x80
 "] <= [inner = sym inner_fastcall, SYS_SIGRETURN = const SYS_SIGRETURN]);
 
 #[cfg(target_arch = "aarch64")]
diff --git a/src/pthread/mod.rs b/src/pthread/mod.rs
index c8ce0036c404ae715b987e9e5ddd27a384daa444..355390cc89f825cc68033062d16d12d7167429f6 100644
--- a/src/pthread/mod.rs
+++ b/src/pthread/mod.rs
@@ -127,7 +127,7 @@ pub(crate) unsafe fn create(
             core::ptr::null_mut(),
             stack_size,
             sys_mman::PROT_READ | sys_mman::PROT_WRITE,
-            sys_mman::MAP_SHARED | sys_mman::MAP_ANONYMOUS,
+            sys_mman::MAP_PRIVATE | sys_mman::MAP_ANONYMOUS,
             -1,
             0,
         );