diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c
index 22e48db..b2ee7f3 100644
--- a/bgpd/bgp_nexthop.c
+++ b/bgpd/bgp_nexthop.c
@@ -98,11 +98,7 @@
 static struct bgp_nexthop_cache *
 bnc_new ()
 {
-  struct bgp_nexthop_cache *new;
-
-  new = XMALLOC (MTYPE_BGP_NEXTHOP_CACHE, sizeof (struct bgp_nexthop_cache));
-  memset (new, 0, sizeof (struct bgp_nexthop_cache));
-  return new;
+  return XCALLOC (MTYPE_BGP_NEXTHOP_CACHE, sizeof (struct bgp_nexthop_cache));
 }
 
 static void
@@ -575,8 +571,7 @@
 	}
       else
 	{
-	  bc = XMALLOC (0, sizeof (struct bgp_connected_ref));
-	  memset (bc, 0, sizeof (struct bgp_connected_ref));
+	  bc = XCALLOC (0, sizeof (struct bgp_connected_ref));
 	  bc->refcnt = 1;
 	  rn->info = bc;
 	}
@@ -601,8 +596,7 @@
 	}
       else
 	{
-	  bc = XMALLOC (0, sizeof (struct bgp_connected_ref));
-	  memset (bc, 0, sizeof (struct bgp_connected_ref));
+	  bc = XCALLOC (0, sizeof (struct bgp_connected_ref));
 	  bc->refcnt = 1;
 	  rn->info = bc;
 	}
@@ -748,8 +742,7 @@
 
       for (i = 0; i < nexthop_num; i++)
 	{
-	  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-	  memset (nexthop, 0, sizeof (struct nexthop));
+	  nexthop = XCALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
 	  nexthop->type = stream_getc (s);
 	  switch (nexthop->type)
 	    {
@@ -858,8 +851,7 @@
 
       for (i = 0; i < nexthop_num; i++)
 	{
-	  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-	  memset (nexthop, 0, sizeof (struct nexthop));
+	  nexthop = XCALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
 	  nexthop->type = stream_getc (s);
 	  switch (nexthop->type)
 	    {
