2004-02-17 Paul Jakma <paul@dishone.st>

        * ospf_zebra.c: (ospf_interface_delete) Do not delete the interface
          params, nor the interface structure, if an interface delete
          message is received from zebra.
        * ospf_interface.c: (ospf_if_delete_hook) Delete the interface
          params and interface, ie that which was previously removed in
          (ospf_interface_delete) above.
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index 2f94b43..acce907 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -677,11 +677,18 @@
 ospf_if_delete_hook (struct interface *ifp)
 {
   int rc = 0;
+  struct route_node *rn;
 #ifdef HAVE_OPAQUE_LSA
   rc = ospf_opaque_del_if (ifp);
 #endif /* HAVE_OPAQUE_LSA */
+
   route_table_finish (IF_OIFS (ifp));
+
+  for (rn = route_top (IF_OIFS_PARAMS (ifp)); rn; rn = route_next (rn))
+    if (rn->info)
+      ospf_del_if_params (rn->info);
   route_table_finish (IF_OIFS_PARAMS (ifp));
+
   ospf_del_if_params ((struct ospf_if_params *) IF_DEF_PARAMS (ifp));
   XFREE (MTYPE_OSPF_IF_INFO, ifp->info);
   ifp->info = NULL;