* isis_adjacency.c: Stop expire timer while deleting adjacency.
	* isis_events.c: Stop pseudo LSP thread while resigning circuit from
	  level.
	* isis_route.c: Fix compiling with EXTREME_DEBUG. Mark route as not
	  in sync with zebra if it's changed.
	* isis_spf.c: Schedule route validating etc even if tent was empty.
	  It's probably because we just don't have any adjacencies.
	* isisd.c: Write minimum spf interval into configuration.
diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index a053ede..81b810a 100644
--- a/isisd/ChangeLog
+++ b/isisd/ChangeLog
@@ -1,3 +1,14 @@
+2005-10-01 Hasso Tepper <hasso at quagga.net>
+
+	* isis_adjacency.c: Stop expire timer while deleting adjacency.
+	* isis_events.c: Stop pseudo LSP thread while resigning circuit from
+	  level.
+	* isis_route.c: Fix compiling with EXTREME_DEBUG. Mark route as not
+	  in sync with zebra if it's changed.
+	* isis_spf.c: Schedule route validating etc even if tent was empty.
+	  It's probably because we just don't have any adjacencies.
+	* isisd.c: Write minimum spf interval into configuration.
+
 2005-09-30 Vincent Jardin <vincent.jardin@6wind.com>
 
 	* isis_route.c: fix EXTREME_DEBUG compilation
diff --git a/isisd/isis_adjacency.c b/isisd/isis_adjacency.c
index a898f24..a4078d7 100644
--- a/isisd/isis_adjacency.c
+++ b/isisd/isis_adjacency.c
@@ -131,6 +131,8 @@
   if (adjdb)
     listnode_delete (adjdb, adj);
 
+  THREAD_OFF (adj->t_expire);
+
   if (adj->ipv4_addrs)
     list_delete (adj->ipv4_addrs);
 #ifdef HAVE_IPV6
diff --git a/isisd/isis_events.c b/isisd/isis_events.c
index 07736fd..8b37e8c 100644
--- a/isisd/isis_events.c
+++ b/isisd/isis_events.c
@@ -195,6 +195,7 @@
     {
       THREAD_TIMER_OFF (circuit->u.bc.t_send_lan_hello[idx]);
       THREAD_TIMER_OFF (circuit->u.bc.t_run_dr[idx]);
+      THREAD_TIMER_OFF (circuit->u.bc.t_refresh_pseudo_lsp[idx]);
       circuit->u.bc.run_dr_elect[idx] = 0;
     }
 
diff --git a/isisd/isis_route.c b/isisd/isis_route.c
index d799ea0..7d0239c 100644
--- a/isisd/isis_route.c
+++ b/isisd/isis_route.c
@@ -129,6 +129,7 @@
 nexthops_print (struct list *nhs)
 {
   struct listnode *node;
+  struct isis_nexthop *nh;
 
   for (ALL_LIST_ELEMENTS_RO (nhs, node, nh))
     nexthop_print (nh);
@@ -139,7 +140,6 @@
 static struct isis_nexthop6 *
 isis_nexthop6_new (struct in6_addr *ip6, unsigned int ifindex)
 {
-
   struct isis_nexthop6 *nexthop6;
 
   nexthop6 = XCALLOC (MTYPE_ISIS_NEXTHOP6, sizeof (struct isis_nexthop6));
@@ -523,6 +523,7 @@
       isis_route_info_merge (rinfo_new, rinfo_old, family);
       isis_route_info_delete (rinfo_new);
       route_info = rinfo_old;
+      UNSET_FLAG (route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNC);
     }
   else
     {
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c
index d937549..988ad9b 100644
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@ -1027,8 +1027,7 @@
   if (listcount (spftree->tents) == 0)
     {
       zlog_warn ("ISIS-Spf: TENT is empty");
-      spftree->lastrun = time (NULL);
-      return retval;
+      goto out;
     }
 
   while (listcount (spftree->tents) > 0)
@@ -1068,6 +1067,7 @@
 	}
     }
 
+out:
   thread_add_event (master, isis_route_validate, area, 0);
   spftree->lastrun = time (NULL);
   spftree->pending = 0;
diff --git a/isisd/isisd.c b/isisd/isisd.c
index 84e1c88..c5c2153 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -1974,6 +1974,31 @@
 		write++;
 	      }
 	  }
+	/* Minimum SPF interval. */
+	if (area->min_spf_interval[0] == area->min_spf_interval[1])
+	  {
+	    if (area->min_spf_interval[0] != MINIMUM_SPF_INTERVAL)
+	      {
+		vty_out (vty, " spf-interval %d%s",
+			 area->min_spf_interval[0], VTY_NEWLINE);
+		write++;
+	      }
+	  }
+	else
+	  {
+	    if (area->min_spf_interval[0] != MINIMUM_SPF_INTERVAL)
+	      {
+		vty_out (vty, " spf-interval level-1 %d%s",
+			 area->min_spf_interval[0], VTY_NEWLINE);
+		write++;
+	      }
+	    if (area->min_spf_interval[1] != MINIMUM_SPF_INTERVAL)
+	      {
+		vty_out (vty, " spf-interval level-2 %d%s",
+			 area->min_spf_interval[1], VTY_NEWLINE);
+		write++;
+	      }
+	  }
 	/* Authentication passwords. */
 	if (area->area_passwd.len > 0)
 	  {