diff --git a/ripngd/ChangeLog b/ripngd/ChangeLog
index 1bafb84..2ad753a 100644
--- a/ripngd/ChangeLog
+++ b/ripngd/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-12 Emmanuel Vize <emmanuel.vize@6wind.com>
+
+        * ripngd.c: (ripng_vty_out_uptime and show_ipv6_ripng_status) 
+          Use new thread_timer_remain_second to display properly the timers 
+          (reported patch from Andrew J. Schorr in ripd.c)
+
 2006-05-11 Paul Jakma <paul.jakma@sun.com>
 
 	* ripng_interface.c: (ripng_interface_address_add) Remove
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index a5bc28d..13a874a 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -1938,14 +1938,14 @@
 
   if ((thread = rinfo->t_timeout) != NULL)
     {
-      clock = thread->u.sands.tv_sec - timer_now.tv_sec;
+      clock = thread_timer_remain_second (thread);
       tm = gmtime (&clock);
       strftime (timebuf, TIME_BUF, "%M:%S", tm);
       vty_out (vty, "%5s", timebuf);
     }
   else if ((thread = rinfo->t_garbage_collect) != NULL)
     {
-      clock = thread->u.sands.tv_sec - timer_now.tv_sec;
+      clock = thread_timer_remain_second (thread);
       tm = gmtime (&clock);
       strftime (timebuf, TIME_BUF, "%M:%S", tm);
       vty_out (vty, "%5s", timebuf);
@@ -2095,17 +2095,6 @@
   return CMD_SUCCESS;
 }
 
-/* Return next event time. */
-static int
-ripng_next_thread_timer (struct thread *thread)
-{
-  struct timeval timer_now;
-
-  gettimeofday (&timer_now, NULL);
-
-  return thread->u.sands.tv_sec - timer_now.tv_sec;
-}
-
 DEFUN (show_ipv6_ripng_status,
        show_ipv6_ripng_status_cmd,
        "show ipv6 ripng status",
@@ -2125,8 +2114,8 @@
   vty_out (vty, "Routing Protocol is \"RIPng\"%s", VTY_NEWLINE);
   vty_out (vty, "  Sending updates every %ld seconds with +/-50%%,",
            ripng->update_time);
-  vty_out (vty, " next due in %d seconds%s",
-           ripng_next_thread_timer (ripng->t_update),
+  vty_out (vty, " next due in %lu seconds%s",
+           thread_timer_remain_second (ripng->t_update),
            VTY_NEWLINE);
   vty_out (vty, "  Timeout after %ld seconds,", ripng->timeout_time);
   vty_out (vty, " garbage collect after %ld seconds%s", ripng->garbage_time,
