diff --git a/proc.c b/proc.c
index 37fd768fe855502f0ea6258170dc1308ed3be156..e48f1ca779981aa523ca121cecf7843d84a56957 100644
--- a/proc.c
+++ b/proc.c
@@ -207,6 +207,11 @@ sched(void)
 {
   struct proc *p = curproc[cpu()];
 
+  if(!holding(&proc_table_lock))
+    panic("sched");
+  if(cpus[cpu()].nlock != 1)
+    panic("sched locks");
+
   if(setjmp(&p->jmpbuf) == 0)
     longjmp(&cpus[cpu()].jmpbuf);
 }