diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 374f854..3e9629f 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,23 @@
+2005-07-29 Paul Jakma <paul.jakma@sun.com>
+
+	* interface.c: (if_delete_update) should always be available, not
+	  just on RTM_IFANNOUNCE/NETLINK systems.
+	* kernel_socket.c: (ifan_read) only call if_delete_update when
+	  interface departs, dont if_delete, because we wish to retain
+	  interface configuration state even when interfaces are removed.
+	  (ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning
+	  to down state is only chance we have to clean up interface in case
+	  it is deleted (eg Solaris down -> unplumb -> plumb up).
+	* redistribute.c: (zebra_interface_delete_update) should always be
+	  available, we /will/ call it now on all systems, via
+	  if_delete_update.
+	* zserv.c: (zsend_interface_delete) ditto
+	  (zsend_interface_address) Update the call-flow diagramme, to
+	  reflect that if_delete_update /is/ now called on all systems,
+	  potentially.
+	* zserv.h: (zsend_interface_delete) unconditionally exported, as
+	  above.
+	  
 2005-06-28 Paul Jakma <paul.jakma@sun.com>
 
 	* (global) Extern and static'ification, with related fixups
diff --git a/zebra/interface.c b/zebra/interface.c
index 8032614..92e43d9 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -290,14 +290,7 @@
     }
 }
 
-
-/* Handle an interface delete event
- * 
- * This function is only called  when support for
- * RTM_IFANNOUNCE or AF_NETLINK sockets (RTM_DELLINK message)
- * is available. It is not called on, eg, Solaris.
- */
-#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
+/* Handle an interface delete event */
 void 
 if_delete_update (struct interface *ifp)
 {
@@ -405,7 +398,6 @@
      interface deletion message. */
   ifp->ifindex = IFINDEX_INTERNAL;
 }
-#endif /* (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK) */
 
 /* Interface is up. */
 void
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index a27bebd..b2985c9 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -227,10 +227,7 @@
       if_add_update (ifp);
     }
   else if (ifp != NULL && ifan->ifan_what == IFAN_DEPARTURE)
-    {
-      if_delete_update (ifp);
-      if_delete (ifp);
-    }
+    if_delete_update (ifp);
 
   if_get_flags (ifp);
   if_get_mtu (ifp);
@@ -397,7 +394,21 @@
 	{
 	  ifp->flags = ifm->ifm_flags;
 	  if (! if_is_up (ifp))
-	    if_down (ifp);
+	    {
+	      if_down (ifp);
+#ifndef RTM_IFANNOUNCE
+              /* No RTM_IFANNOUNCE on this platform, so we can never
+               * distinguish between down and delete. We must presume
+               * it has been deleted.
+               * Eg, Solaris will not notify us of unplumb.
+               *
+               * XXX: Fixme - this should be runtime detected
+               * So that a binary compiled on a system with IFANNOUNCE
+               * will still behave correctly if run on a platform without
+               */
+              if_delete_update (ifp);
+#endif /* RTM_IFANNOUNCE */
+            }
 	}
       else
 	{
diff --git a/zebra/redistribute.c b/zebra/redistribute.c
index dff6cb5..677e6f9 100644
--- a/zebra/redistribute.c
+++ b/zebra/redistribute.c
@@ -345,12 +345,6 @@
       zsend_interface_add (client, ifp);
 }
 
-/*
- * This function is only called  when support for 
- * RTM_IFANNOUNCE or AF_NETLINK sockets (RTM_DELLINK message)
- * is available. It is not called on Solaris.
- */
-#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
 void
 zebra_interface_delete_update (struct interface *ifp)
 {
@@ -364,7 +358,6 @@
     if (client->ifinfo)
       zsend_interface_delete (client, ifp);
 }
-#endif /* defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK) */
 
 /* Interface address addition. */
 void
diff --git a/zebra/zserv.c b/zebra/zserv.c
index f08f7ce..eb126fe 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -203,12 +203,6 @@
 }
 
 /* Interface deletion from zebra daemon. */
-/*
- * This function is only called  when support for 
- * RTM_IFANNOUNCE or AF_NETLINK sockets (RTM_DELLINK message)
- * is available. It is not called on Solaris.
- */
-#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
 int
 zsend_interface_delete (struct zserv *client, struct interface *ifp)
 {
@@ -240,7 +234,6 @@
 
   return zebra_server_send_message (client);
 }
-#endif /* (defined(RTM_IFANNOUNCE) || defined(HAVE_LINUX_RTNETLINK_H)) */
 
 /* Interface address is added/deleted. Send ZEBRA_INTERFACE_ADDRESS_ADD or
  * ZEBRA_INTERFACE_ADDRESS_DELETE to the client. 
@@ -266,8 +259,8 @@
  *                           |                        
  *          zebra_interface_address_delete_update    
  *             ^                        ^      ^
- *             |                        |      if_delete_update (not called on 
- *             |                        |                         Solaris)
+ *             |                        |      if_delete_update
+ *             |                        |
  *         ip_address_uninstall        connected_delete_ipv4
  *         [ipv6_addresss_uninstall]   [connected_delete_ipv6]
  *             ^                        ^
diff --git a/zebra/zserv.h b/zebra/zserv.h
index 8e67c60..f7d3f8c 100644
--- a/zebra/zserv.h
+++ b/zebra/zserv.h
@@ -96,9 +96,7 @@
 extern void zebra_vty_init (void);
 
 extern int zsend_interface_add (struct zserv *, struct interface *);
-#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
 extern int zsend_interface_delete (struct zserv *, struct interface *);
-#endif
 extern int zsend_interface_address (int, struct zserv *, struct interface *,
                                     struct connected *);
 extern int zsend_interface_update (int, struct zserv *, struct interface *);
