diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index c845a89..df6897e 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -1022,16 +1022,32 @@
   }
 }
 
+static void show_rpf_refresh_stats(struct vty *vty)
+{
+  vty_out(vty, 
+	  "RPF Cache Refresh Delay:    %ld msecs%s"
+	  "RPF Cache Refresh Timer:    %ld msecs%s"
+	  "RPF Cache Refresh Requests: %lld%s"
+	  "RPF Cache Refresh Events:   %lld%s",
+	  qpim_rpf_cache_refresh_delay_msec, VTY_NEWLINE,
+	  pim_time_timer_remain_msec(qpim_rpf_cache_refresher), VTY_NEWLINE,
+	  qpim_rpf_cache_refresh_requests, VTY_NEWLINE,
+	  qpim_rpf_cache_refresh_events, VTY_NEWLINE);
+}
+
 static void pim_show_rpf(struct vty *vty)
 {
   struct listnode     *up_node;
   struct pim_upstream *up;
 
+  show_rpf_refresh_stats(vty);
+
+  vty_out(vty, "%s", VTY_NEWLINE);
+
   vty_out(vty,
 	  "Source          Group           RpfIface RpfAddress      RibNextHop      Metric Pref%s",
 	  VTY_NEWLINE);
 
-
   for (ALL_LIST_ELEMENTS_RO(qpim_upstream_list, up_node, up)) {
     char src_str[100];
     char grp_str[100];
@@ -1847,7 +1863,7 @@
 
   vty_out(vty, "%s", VTY_NEWLINE);
   
-  vty_out(vty, "Interface Address         ifIndex VifIndex PktsIn PktsOut BytesIn BytesOut%s",
+  vty_out(vty, "Interface Address         ifi Vif  PktsIn PktsOut    BytesIn   BytesOut%s",
 	  VTY_NEWLINE);
 
   for (ALL_LIST_ELEMENTS_RO(iflist, node, ifp)) {
@@ -1878,7 +1894,7 @@
 
     ifaddr = pim_ifp->primary_address;
 
-    vty_out(vty, "%-9s %-15s %7d %8d %6lu %7lu %7lu %8lu%s",
+    vty_out(vty, "%-9s %-15s %3d %3d %7lu %7lu %10lu %10lu%s",
 	    ifp->name,
 	    inet_ntoa(ifaddr),
 	    ifp->ifindex,
@@ -1934,12 +1950,8 @@
 	  VTY_NEWLINE);
 
   vty_out(vty, "%s", VTY_NEWLINE);
-  vty_out(vty, "RPF Cache Refresh Delay: %ld msecs%s",
-	  qpim_rpf_cache_refresh_delay_msec,
-	  VTY_NEWLINE);
-  vty_out(vty, "RPF Cache Refresh Timer: %ld msecs%s",
-	  pim_time_timer_remain_msec(qpim_rpf_cache_refresher),
-	  VTY_NEWLINE);
+
+  show_rpf_refresh_stats(vty);
 
   show_multicast_interfaces(vty);
   
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c
index 56e4dba..9764532 100644
--- a/pimd/pim_zebra.c
+++ b/pimd/pim_zebra.c
@@ -447,13 +447,21 @@
   /* update kernel multicast forwarding cache (MFC) */
   scan_oil();
 
+  ++qpim_rpf_cache_refresh_events;
+
   return 0;
 }
 
 static void sched_rpf_cache_refresh()
 {
-  if (qpim_rpf_cache_refresher)
+  ++qpim_rpf_cache_refresh_requests;
+
+  if (qpim_rpf_cache_refresher) {
+    /* Refresh timer is already running */
     return;
+  }
+
+  /* Start refresh timer */
 
   if (PIM_DEBUG_ZEBRA) {
     zlog_debug("%s: triggering %ld msec timer",
diff --git a/pimd/pimd.c b/pimd/pimd.c
index f255a28..e8afe77 100644
--- a/pimd/pimd.c
+++ b/pimd/pimd.c
@@ -54,6 +54,8 @@
 struct pim_assert_metric  qpim_infinite_assert_metric;
 long                      qpim_rpf_cache_refresh_delay_msec = 10000;
 struct thread            *qpim_rpf_cache_refresher = 0;
+int64_t                   qpim_rpf_cache_refresh_requests = 0;
+int64_t                   qpim_rpf_cache_refresh_events = 0;
 struct in_addr            qpim_inaddr_any;
 
 static void pim_free()
diff --git a/pimd/pimd.h b/pimd/pimd.h
index 10f8518..aaf5faa 100644
--- a/pimd/pimd.h
+++ b/pimd/pimd.h
@@ -80,6 +80,8 @@
 struct pim_assert_metric  qpim_infinite_assert_metric;
 long                      qpim_rpf_cache_refresh_delay_msec;
 struct thread            *qpim_rpf_cache_refresher;
+int64_t                   qpim_rpf_cache_refresh_requests;
+int64_t                   qpim_rpf_cache_refresh_events;
 struct in_addr            qpim_inaddr_any;
 
 #define PIM_JP_HOLDTIME (qpim_t_periodic * 7 / 2)
