diff --git a/watchquagga/ChangeLog b/watchquagga/ChangeLog
index d40c155..20f974e 100644
--- a/watchquagga/ChangeLog
+++ b/watchquagga/ChangeLog
@@ -1,3 +1,14 @@
+2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* watchquagga.c: (run_job) Fix bug: delay.tv_sec was being used
+	  without having been initialized when the "force" argument was true.
+	  (try_restart) When phased restart is stopping the routing daemons,
+	  it should tell run_job to update the restart interval.
+	  (phase_check) In final step of phased restart when the routing
+	  daemons are being started again, tell run_job not to update
+	  the restart interval (this is now done when the daemons are
+	  stopped).
+
 2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* watchquagga.c: In several places, cast pid_t to int for printf to
diff --git a/watchquagga/watchquagga.c b/watchquagga/watchquagga.c
index fb24d75..772b429 100644
--- a/watchquagga/watchquagga.c
+++ b/watchquagga/watchquagga.c
@@ -1,5 +1,5 @@
 /*
-    $Id: watchquagga.c,v 1.8 2004/12/29 17:45:08 ajs Exp $
+    $Id: watchquagga.c,v 1.9 2005/01/12 16:24:51 ajs Exp $
 
     Monitor status of quagga daemons and restart if necessary.
 
@@ -484,8 +484,11 @@
       return -1;
     }
 
-  if (!force &&
-      (time_elapsed(&delay,&restart->time)->tv_sec < restart->interval))
+  /* Note: time_elapsed test must come before the force test, since we need
+     to make sure that delay is initialized for use below in updating the
+     restart interval. */
+  if ((time_elapsed(&delay,&restart->time)->tv_sec < restart->interval) &&
+      !force)
     {
       if (gs.loglevel > LOG_DEBUG+1)
         zlog_debug("postponing %s %s: "
@@ -861,7 +864,7 @@
 	for (dmn = gs.daemons; dmn; dmn = dmn->next)
 	  {
 	    if (dmn != gs.special)
-	      run_job(&dmn->restart,"start",gs.start_command,1,1);
+	      run_job(&dmn->restart,"start",gs.start_command,1,0);
 	  }
       }
       gs.phase = PHASE_NONE;
@@ -923,7 +926,7 @@
     for (dmn = gs.daemons; dmn; dmn = dmn->next)
       {
         if (dmn != gs.special)
-	  run_job(&dmn->restart,"stop",gs.stop_command,1,0);
+	  run_job(&dmn->restart,"stop",gs.stop_command,1,1);
       }
     set_phase(PHASE_STOPS_PENDING);
     break;
