diff --git a/redox-rt/src/signal.rs b/redox-rt/src/signal.rs
index f99f39ebce7c465db390bfae5129db68f5ee7330..3c21bde1a3d932ad08e188707f4b195de3dfd403 100644
--- a/redox-rt/src/signal.rs
+++ b/redox-rt/src/signal.rs
@@ -67,7 +67,7 @@ unsafe fn inner(stack: &mut SigStack) {
             panic!("ctl {:x?} signal {}", os.control, stack.sig_num)
         }
         SigactionKind::Default => {
-            syscall::exit(stack.sig_num << 8);
+            syscall::exit(stack.sig_num);
             unreachable!();
         }
         SigactionKind::Handled { handler } => handler,
@@ -344,7 +344,7 @@ bitflags::bitflags! {
 const STORED_FLAGS: u32 = 0xfe00_0000;
 
 fn default_handler(sig: c_int) {
-    syscall::exit((sig as usize) << 8);
+    syscall::exit(sig as usize);
 }
 
 #[derive(Clone, Copy)]
diff --git a/src/platform/redox/mod.rs b/src/platform/redox/mod.rs
index 83a5cbbe1b9817b2fb57c772421d15dd4c5b87bd..c1d3b645f3b9788c6f8434d04a498a58423849b1 100644
--- a/src/platform/redox/mod.rs
+++ b/src/platform/redox/mod.rs
@@ -217,7 +217,7 @@ impl Pal for Sys {
     }
 
     fn exit(status: c_int) -> ! {
-        let _ = syscall::exit(status as usize);
+        let _ = syscall::exit((status as usize) << 8);
         loop {}
     }