diff -Naur linux-2.5.59.orig/kernel/signal.c linux-2.5.59/kernel/signal.c --- linux-2.5.59.orig/kernel/signal.c 2003-01-30 16:54:44.000000000 -0600 +++ linux-2.5.59/kernel/signal.c 2003-01-30 16:55:22.000000000 -0600 @@ -854,11 +854,13 @@ tmp = p->sig->curr_target; - if (!tmp || tmp->tgid != p->tgid) + if (!tmp || tmp->tgid != p->tgid) { /* restart balancing at this thread */ p->sig->curr_target = p; + tmp = p; + } - else for (;;) { + for (;;) { if (thread_group_empty(p)) BUG(); if (!tmp || tmp->tgid != p->tgid)