diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index b5f2887..98bf90c 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,10 @@
+2004-05-08 Paul Jakma <paul@dishone.st>
+
+	* bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes
+	  (bgp_interface_address_delete) ditto.
+	  (bgp_zebra_announce) ditto.
+	  (bgp_zebra_withdraw) ditto.
+
 2004-05-03 Daniel Roesen <dr@cluenet.de>
 	
 	* bgp_fsm.c: (bgp_stop) Reset uptime only on transition from 
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c
index aef888b..394bde6 100644
--- a/bgpd/bgp_zebra.c
+++ b/bgpd/bgp_zebra.c
@@ -201,7 +201,7 @@
 {
   struct connected *ifc;
 
-  ifc = zebra_interface_address_add_read (zclient->ibuf);
+  ifc = zebra_interface_address_read (command, zclient->ibuf);
 
   if (ifc == NULL)
     return 0;
@@ -220,7 +220,7 @@
 {
   struct connected *ifc;
 
-  ifc = zebra_interface_address_delete_read (zclient->ibuf);
+  ifc = zebra_interface_address_read (command, zclient->ibuf);
 
   if (ifc == NULL)
     return 0;
@@ -703,7 +703,8 @@
 	  SET_FLAG (api.message, ZAPI_MESSAGE_DISTANCE);
 	  api.distance = distance;
 	}
-      zapi_ipv4_add (zclient, (struct prefix_ipv4 *) p, &api);
+      zapi_ipv4_route (ZEBRA_IPV4_ROUTE_ADD, zclient, 
+                       (struct prefix_ipv4 *) p, &api);
     }
 #ifdef HAVE_IPV6
   /* We have to think about a IPv6 link-local address curse. */
@@ -758,7 +759,8 @@
       SET_FLAG (api.message, ZAPI_MESSAGE_METRIC);
       api.metric = info->attr->med;
 
-      zapi_ipv6_add (zclient, (struct prefix_ipv6 *) p, &api);
+      zapi_ipv6_route (ZEBRA_IPV6_ROUTE_ADD, zclient, 
+                       (struct prefix_ipv6 *) p, &api);
     }
 #endif /* HAVE_IPV6 */
 }
@@ -805,7 +807,8 @@
       SET_FLAG (api.message, ZAPI_MESSAGE_METRIC);
       api.metric = info->attr->med;
 
-      zapi_ipv4_delete (zclient, (struct prefix_ipv4 *) p, &api);
+      zapi_ipv4_route (ZEBRA_IPV4_ROUTE_DELETE, zclient, 
+                       (struct prefix_ipv4 *) p, &api);
     }
 #ifdef HAVE_IPV6
   /* We have to think about a IPv6 link-local address curse. */
@@ -849,7 +852,8 @@
       SET_FLAG (api.message, ZAPI_MESSAGE_METRIC);
       api.metric = info->attr->med;
 
-      zapi_ipv6_delete (zclient, (struct prefix_ipv6 *) p, &api);
+      zapi_ipv6_route (ZEBRA_IPV6_ROUTE_DELETE, zclient, 
+                       (struct prefix_ipv6 *) p, &api);
     }
 #endif /* HAVE_IPV6 */
 }
