diff --git a/userprog/syscall.c b/userprog/syscall.c
index 0c4d8cf5c0bb0c96c5115e1b1a6d875959b69e0e..8ec4d62f77a69487d2dcfc15a88343c610ef9b2b 100644
--- a/userprog/syscall.c
+++ b/userprog/syscall.c
@@ -68,8 +68,7 @@ syscall_handler (struct intr_frame *f UNUSED)
     syscall_wait(f);
     break;
   default:
-    printf ("WARNING: Invalid Syscall (%d)\n", syscall_number);
+    printf("WARNING: Invalid Syscall (%d)\n", syscall_number);
+    thread_exit();
   }
-  // TODO: remove this call to exit as we don't want all syscalls to make the thread exit
-  thread_exit ();
 }