--- sys/netinet/in_mcast.c.orig 2009-09-09 19:33:22.000000000 +0000 +++ sys/netinet/in_mcast.c 2009-09-10 05:28:20.000000000 +0000 @@ -2280,7 +2292,9 @@ if (is_final) { - /* Remove the gap in the membership array. */ - for (++idx; idx < imo->imo_num_memberships; ++idx) + /* Remove the gap in the membership and filter array. */ + for (++idx; idx < imo->imo_num_memberships; ++idx) { imo->imo_membership[idx-1] = imo->imo_membership[idx]; + imo->imo_mfilters[idx-1] = imo->imo_mfilters[idx]; + } imo->imo_num_memberships--; }