diff --git a/src/syscall/mod.rs b/src/syscall/mod.rs
index 56029fe4df88bb58099295b7aacad08a6d32defa..ba8518727d1038fa13d1b0efbc79ebbbb5742ae0 100644
--- a/src/syscall/mod.rs
+++ b/src/syscall/mod.rs
@@ -74,7 +74,7 @@ pub extern fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize
                 SYS_CHMOD => chmod(validate_slice(b as *const u8, c)?, d as u16),
                 SYS_RMDIR => rmdir(validate_slice(b as *const u8, c)?),
                 SYS_UNLINK => unlink(validate_slice(b as *const u8, c)?),
-                _ => unreachable!()
+                _ => Err(Error::new(ENOSYS))
             },
             _ => match a {
                 SYS_YIELD => sched_yield(),