Index: in.c =================================================================== RCS file: /private/FreeBSD/src/sys/netinet/in.c,v retrieving revision 1.74 diff -u -p -r1.74 in.c --- in.c 26 Feb 2004 04:27:55 -0000 1.74 +++ in.c 29 Mar 2004 19:43:21 -0000 @@ -195,6 +195,7 @@ in_control(so, cmd, data, ifp, td) struct in_ifaddr *oia; struct in_aliasreq *ifra = (struct in_aliasreq *)data; struct sockaddr_in oldaddr; + struct in_multi *inm; int error, hostIsNew, iaIsNew, maskIsNew, s; iaIsNew = 0; @@ -449,6 +450,8 @@ in_control(so, cmd, data, ifp, td) TAILQ_REMOVE(&ifp->if_addrhead, &ia->ia_ifa, ifa_link); TAILQ_REMOVE(&in_ifaddrhead, ia, ia_link); LIST_REMOVE(ia, ia_hash); + while ((inm = LIST_FIRST(&ia->ia_multiaddrs)) != NULL) + in_delmulti(inm); IFAFREE(&ia->ia_ifa); splx(s);