--- sys/kern/kern_switch.c.orig 2007-06-13 04:50:31.000000000 +0900 +++ sys/kern/kern_switch.c 2007-07-18 10:21:09.000000000 +0900 @@ -192,7 +192,7 @@ critical_exit(void) thread_lock(td); td->td_critnest--; SCHED_STAT_INC(switch_owepreempt); - mi_switch(SW_INVOL, NULL); + mi_switch(SW_INVOL|SW_PREEMPT, NULL); thread_unlock(td); } } else