Index: subr_sleepqueue.c =================================================================== RCS file: /home/ncvs/src/sys/kern/subr_sleepqueue.c,v retrieving revision 1.44 diff -u -r1.44 subr_sleepqueue.c --- subr_sleepqueue.c 7 Feb 2008 06:55:38 -0000 1.44 +++ subr_sleepqueue.c 17 Feb 2008 00:39:20 -0000 @@ -383,6 +383,12 @@ MPASS(wchan != NULL); CTR3(KTR_PROC, "sleepq catching signals: thread %p (pid %ld, %s)", (void *)td, (long)p->p_pid, td->td_name); + thread_lock(td); + if (!SIGPENDING(td) && !(td->td_flags & TDF_INTERRUPT)) { + sleepq_switch(wchan); + return (0); + } + thread_unlock(td); mtx_unlock_spin(&sc->sc_lock);