I don't think &u is EVER woken up. A signal wakes up a process via a direct call to setrun(), and not by calling wakeup() on its current p_wchan. Take a look in sig.c at the signal routines, and in slp.c at setrun(), and you'll see what I'm talking about. -Ed