diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c
index c74beba..20302e3 100644
--- a/bgpd/bgp_nexthop.c
+++ b/bgpd/bgp_nexthop.c
@@ -809,13 +809,7 @@
       zlog_err("%s: zserv_read_header() failed", __func__);
       return NULL;
     }
-  if (version != ZSERV_VERSION || marker != ZEBRA_HEADER_MARKER)
-    {
-      zlog_err("%s: socket %d version mismatch, marker %d, version %d",
-               __func__, zlookup->sock, marker, version);
-      return NULL;
-    }
-  
+
   /* XXX: not doing anything with raddr */
   raddr.s_addr = stream_get_ipv4 (s);
   metric = stream_getl (s);
@@ -918,13 +912,7 @@
       zlog_err("%s: zserv_read_header() failed", __func__);
       return NULL;
     }
-  if (version != ZSERV_VERSION || marker != ZEBRA_HEADER_MARKER)
-    {
-      zlog_err("%s: socket %d version mismatch, marker %d, version %d",
-               __func__, zlookup->sock, marker, version);
-      return NULL;
-    }
-  
+
   /* XXX: not actually doing anything with raddr */
   stream_get (&raddr, s, 16);
 
@@ -1065,13 +1053,7 @@
       zlog_err("%s: zserv_read_header() failed", __func__);
       return 0;
     }
-  if (version != ZSERV_VERSION || marker != ZEBRA_HEADER_MARKER)
-    {
-      zlog_err("%s: socket %d version mismatch, marker %d, version %d",
-               __func__, zlookup->sock, marker, version);
-      return 0;
-    }
-  
+
   /* XXX: not using addr */
   addr.s_addr = stream_get_ipv4 (s);
   metric = stream_getl (s);
diff --git a/lib/zclient.c b/lib/zclient.c
index a095632..0ce46fe 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -315,6 +315,13 @@
   *vrf_id = stream_getw (s);
   *cmd = stream_getw (s);
 
+  if (*version != ZSERV_VERSION || *marker != ZEBRA_HEADER_MARKER)
+    {
+      zlog_err("%s: socket %d version mismatch, marker %d, version %d",
+               __func__, sock, *marker, *version);
+      return -1;
+    }
+
   if (*size && stream_read (s, sock, *size) != *size)
     return -1;
 
diff --git a/pimd/pim_zlookup.c b/pimd/pim_zlookup.c
index fae8f81..67896d9 100644
--- a/pimd/pim_zlookup.c
+++ b/pimd/pim_zlookup.c
@@ -196,14 +196,7 @@
     zclient_lookup_failed(zlookup);
     return -3;
   }
-  
-  if (version != ZSERV_VERSION || marker != ZEBRA_HEADER_MARKER) {
-    zlog_err("%s: socket %d version mismatch, marker %d, version %d",
-	     __func__, zlookup->sock, marker, version);
-    zclient_lookup_failed(zlookup);
-    return -4;
-  }
-    
+
   if (command != ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB) {
     zlog_err("%s: socket %d command mismatch: %d",
             __func__, zlookup->sock, command);
