diff --git a/pimd/COMMANDS b/pimd/COMMANDS
index 425ac82..2dedea0 100644
--- a/pimd/COMMANDS
+++ b/pimd/COMMANDS
@@ -60,6 +60,7 @@
        clear ip mroute                  Reset multicast routes
        clear ip pim interfaces		Reset PIM interfaces
        clear ip pim oil			Rescan PIM OIL (output interface list)
+       clear zclient-update		Reset zclient update connection to zebra daemon
        debug igmp			IGMP protocol activity
        debug mroute			PIM interaction with kernel MFC cache
        debug pim			PIM protocol activity
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index 9363e3c..a49264a 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -27,6 +27,7 @@
 #include "command.h"
 #include "if.h"
 #include "prefix.h"
+#include "zclient.h"
 
 #include "pimd.h"
 #include "pim_cmd.h"
@@ -1562,6 +1563,17 @@
   return CMD_SUCCESS;
 }
 
+DEFUN (clear_zclient_update,
+       clear_zclient_update_cmd,
+       "clear zclient-update",
+       CLEAR_STR
+       "Reset zclient update connection to zebra daemon\n")
+{
+  zclient_reset(qpim_zclient_update);
+
+  return CMD_SUCCESS;
+}
+
 DEFUN (clear_ip_interfaces,
        clear_ip_interfaces_cmd,
        "clear ip interfaces",
@@ -4312,6 +4324,7 @@
   install_element (ENABLE_NODE, &clear_ip_mroute_cmd);
   install_element (ENABLE_NODE, &clear_ip_pim_interfaces_cmd);
   install_element (ENABLE_NODE, &clear_ip_pim_oil_cmd);
+  install_element (ENABLE_NODE, &clear_zclient_update_cmd);
 
   install_element (ENABLE_NODE, &show_ip_igmp_interface_cmd);
   install_element (ENABLE_NODE, &show_ip_igmp_join_cmd);
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c
index e080c04..44046db 100644
--- a/pimd/pim_zebra.c
+++ b/pimd/pim_zebra.c
@@ -644,7 +644,6 @@
 
 void pim_zebra_init()
 {
-  struct zclient *zclient;
   int i;
 
 #ifdef HAVE_TCP_ZEBRA
@@ -654,35 +653,35 @@
 #endif
 
   /* Socket for receiving updates from Zebra daemon */
-  zclient = zclient_new();
+  qpim_zclient_update = zclient_new();
 
-  zclient->router_id_update         = pim_router_id_update;
-  zclient->router_id_update         = pim_router_id_update_zebra;
-  zclient->interface_add            = pim_zebra_if_add;
-  zclient->interface_delete         = pim_zebra_if_del;
-  zclient->interface_up             = pim_zebra_if_state_up;
-  zclient->interface_down           = pim_zebra_if_state_down;
-  zclient->interface_address_add    = pim_zebra_if_address_add;
-  zclient->interface_address_delete = pim_zebra_if_address_del;
-  zclient->ipv4_route_add           = redist_read_ipv4_route;
-  zclient->ipv4_route_delete        = redist_read_ipv4_route;
+  qpim_zclient_update->zclient_broken           = zclient_broken;
+  qpim_zclient_update->router_id_update         = pim_router_id_update_zebra;
+  qpim_zclient_update->interface_add            = pim_zebra_if_add;
+  qpim_zclient_update->interface_delete         = pim_zebra_if_del;
+  qpim_zclient_update->interface_up             = pim_zebra_if_state_up;
+  qpim_zclient_update->interface_down           = pim_zebra_if_state_down;
+  qpim_zclient_update->interface_address_add    = pim_zebra_if_address_add;
+  qpim_zclient_update->interface_address_delete = pim_zebra_if_address_del;
+  qpim_zclient_update->ipv4_route_add           = redist_read_ipv4_route;
+  qpim_zclient_update->ipv4_route_delete        = redist_read_ipv4_route;
 
-  zclient_init(zclient, ZEBRA_ROUTE_PIM);
+  zclient_init(qpim_zclient_update, ZEBRA_ROUTE_PIM);
   zlog_info("zclient_init cleared redistribution request");
 
-  zassert(zclient->redist_default == ZEBRA_ROUTE_PIM);
+  zassert(qpim_zclient_update->redist_default == ZEBRA_ROUTE_PIM);
 
   /* Request all redistribution */
   for (i = 0; i < ZEBRA_ROUTE_MAX; i++) {
-    if (i == zclient->redist_default)
+    if (i == qpim_zclient_update->redist_default)
       continue;
-    zclient->redist[i] = 1;
+    qpim_zclient_update->redist[i] = 1;
     zlog_info("%s: requesting redistribution for %s (%i)", 
 	      __PRETTY_FUNCTION__, zebra_route_string(i), i);
   }
 
   /* Request default information */
-  zclient->default_information = 1;
+  qpim_zclient_update->default_information = 1;
   zlog_info("%s: requesting default information redistribution",
 	    __PRETTY_FUNCTION__);
 
diff --git a/pimd/pimd.c b/pimd/pimd.c
index 49ddc21..855defc 100644
--- a/pimd/pimd.c
+++ b/pimd/pimd.c
@@ -51,6 +51,7 @@
 struct list              *qpim_channel_oil_list = 0;
 int                       qpim_t_periodic = PIM_DEFAULT_T_PERIODIC; /* Period between Join/Prune Messages */
 struct list              *qpim_upstream_list = 0;
+struct zclient           *qpim_zclient_update = 0;
 struct zclient           *qpim_zclient_lookup = 0;
 struct pim_assert_metric  qpim_infinite_assert_metric;
 long                      qpim_rpf_cache_refresh_delay_msec = 10000;
diff --git a/pimd/pimd.h b/pimd/pimd.h
index 68b1199..b0a1b64 100644
--- a/pimd/pimd.h
+++ b/pimd/pimd.h
@@ -80,6 +80,7 @@
 struct in_addr            qpim_all_pim_routers_addr;
 int                       qpim_t_periodic; /* Period between Join/Prune Messages */
 struct list              *qpim_upstream_list; /* list of struct pim_upstream */
+struct zclient           *qpim_zclient_update;
 struct zclient           *qpim_zclient_lookup;
 struct pim_assert_metric  qpim_infinite_assert_metric;
 long                      qpim_rpf_cache_refresh_delay_msec;
