Index: firmware/thread.c =================================================================== --- firmware/thread.c (revision 16256) +++ firmware/thread.c (working copy) @@ -1277,13 +1277,11 @@ swoop */ if (r != NULL) { - /* Place waking threads at the end of the running list. */ - struct thread_entry *tmp; - w->l.prev->l.next = r; - r->l.prev->l.next = w; - tmp = r->l.prev; - r->l.prev = w->l.prev; - w->l.prev = tmp; + /* Place waking threads next in the running list. */ + r->l.next->l.prev = w->l.prev; + w->l.prev->l.next = r->l.next; + w->l.prev = r; + r->l.next = w; } else {