Index: kern_event.c =================================================================== RCS file: /usr/repo/src/sys/kern/kern_event.c,v retrieving revision 1.99 diff -u -p -r1.99 kern_event.c --- kern_event.c 14 Apr 2006 14:27:28 -0000 1.99 +++ kern_event.c 1 Jun 2006 09:17:44 -0000 @@ -1708,7 +1708,7 @@ knlist_destroy(struct knlist *knl) void knlist_cleardel(struct knlist *knl, struct thread *td, int islocked, int killkn) { - struct knote *kn; + struct knote *kn, *kn2; struct kqueue *kq; if (islocked) @@ -1719,7 +1719,7 @@ again: /* need to reaquire lock since w knl->kl_lock(knl->kl_lockarg); } - SLIST_FOREACH(kn, &knl->kl_list, kn_selnext) { + SLIST_FOREACH_SAFE(kn, &knl->kl_list, kn_selnext, kn2) { kq = kn->kn_kq; KQ_LOCK(kq); if ((kn->kn_status & KN_INFLUX)) {