--- /dev/null
+
+ This patch fixes problem with disapearing all-nodes (ff02::1) multicast
+ address after setting interface down and up. When all-nodes address is not
+ present IPv6 address autoconfiguration doesn't work.
+
+ Jacek Konieczny <jajcus@pld.org.pl>
+
+diff -durN linux-2.2.16.orig/net/ipv6/addrconf.c linux/net/ipv6/addrconf.c
+--- linux-2.2.16.orig/net/ipv6/addrconf.c Tue Jan 4 19:12:27 2000
++++ linux/net/ipv6/addrconf.c Fri Jun 9 20:37:48 2000
+@@ -255,8 +255,6 @@
+ idev = ipv6_add_dev(dev);
+ if (idev == NULL)
+ return NULL;
+- if (dev->flags&IFF_UP)
+- ipv6_mc_up(idev);
+ }
+ return idev;
+ }
+@@ -1045,6 +1043,8 @@
+ return;
+ }
+
++ ipv6_mc_up(idev);
++
+ addrconf_lock();
+ ifp = ipv6_add_addr(idev, &addr, IFA_HOST);
+
+@@ -1084,6 +1084,8 @@
+ if (idev == NULL)
+ return;
+
++ ipv6_mc_up(idev);
++
+ #ifdef CONFIG_IPV6_EUI64
+ memset(&addr, 0, sizeof(struct in6_addr));
+
+@@ -1120,6 +1122,8 @@
+ printk(KERN_DEBUG "init sit: add_dev failed\n");
+ return;
+ }
++
++ ipv6_mc_up(idev);
+
+ sit_add_v4_addrs(idev);
+