diff --git a/src/userprog/syscall.c b/src/userprog/syscall.c
index 04635159d30520fa11296dc922e622f2ad2553d5..d1927a96c08078cb069c98169b72b94d058c7bc8 100644
--- a/src/userprog/syscall.c
+++ b/src/userprog/syscall.c
@@ -17,5 +17,12 @@ static void
 syscall_handler (struct intr_frame *f UNUSED)
 {
   printf ("system call!\n");
+  int syscall_nr=-1;
+  switch(sysCall) {
+	  case SYS_HALT:{
+		  printf ("system call, halt\n");
+      shutdown_power_off();
+		  break;
+		  }
   thread_exit ();
 }