diff --git a/ripngd/ChangeLog b/ripngd/ChangeLog
index f5a3078..01256bb 100644
--- a/ripngd/ChangeLog
+++ b/ripngd/ChangeLog
@@ -1,3 +1,7 @@
+2004-05-08 Paul Jakma <paul@dishone.st>
+
+	* ripng_{interface,zebra}.c: sync with zclient changes
+
 2004-01-03  Greg Troxel  <gdt@ahi.ir.bbn.com>
 
 	* ripng_interface.c (ripng_multicast_join): If IPV6_JOIN_GROUP
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index 7437f70..28977be 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -411,7 +411,8 @@
   struct connected *c;
   struct prefix *p;
 
-  c = zebra_interface_address_add_read (zclient->ibuf);
+  c = zebra_interface_address_read (ZEBRA_INTERFACE_ADDRESS_ADD, 
+                                    zclient->ibuf);
 
   if (c == NULL)
     return 0;
@@ -480,7 +481,8 @@
   struct prefix *p;
   char buf[INET6_ADDRSTRLEN];
 
-  ifc = zebra_interface_address_delete_read (zclient->ibuf);
+  ifc = zebra_interface_address_read (ZEBRA_INTERFACE_ADDRESS_DELETE, 
+                                      zclient->ibuf);
   
   if (ifc)
     {
diff --git a/ripngd/ripng_zebra.c b/ripngd/ripng_zebra.c
index de372dc..45ba213 100644
--- a/ripngd/ripng_zebra.c
+++ b/ripngd/ripng_zebra.c
@@ -60,7 +60,7 @@
       api.ifindex_num = 1;
       api.ifindex = &ifindex;
 
-      zapi_ipv6_add (zclient, p, &api);
+      zapi_ipv6_route (ZEBRA_IPV6_ROUTE_ADD, zclient, p, &api);
     }
 }
 
@@ -82,7 +82,7 @@
       api.ifindex_num = 1;
       api.ifindex = &ifindex;
 
-      zapi_ipv6_delete (zclient, p, &api);
+      zapi_ipv6_route (ZEBRA_IPV6_ROUTE_DELETE, zclient, p, &api);
     }
 }
 
@@ -300,7 +300,7 @@
       if (strncmp (redist_type[i].str, argv[0], 
 		   redist_type[i].str_min_len) == 0) 
 	{
-	  zclient_redistribute_set (zclient, redist_type[i].type);
+	  zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient, redist_type[i].type);
 	  return CMD_SUCCESS;
 	}
     }
@@ -364,7 +364,7 @@
 		redist_type[i].str_min_len) == 0) 
       {
 	ripng_redistribute_metric_set (redist_type[i].type, metric);
-	zclient_redistribute_set (zclient, redist_type[i].type);
+	zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient, redist_type[i].type);
 	return CMD_SUCCESS;
       }
   }
@@ -407,7 +407,7 @@
 		redist_type[i].str_min_len) == 0) 
       {
 	ripng_redistribute_routemap_set (redist_type[i].type, argv[1]);
-	zclient_redistribute_set (zclient, redist_type[i].type);
+	zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient, redist_type[i].type);
 	return CMD_SUCCESS;
       }
   }
@@ -456,7 +456,7 @@
       {
 	ripng_redistribute_metric_set (redist_type[i].type, metric);
 	ripng_redistribute_routemap_set (redist_type[i].type, argv[2]);
-	zclient_redistribute_set (zclient, redist_type[i].type);
+	zclient_redistribute (ZEBRA_REDISTRIBUTE_ADD, zclient, redist_type[i].type);
 	return CMD_SUCCESS;
       }
   }
