diff --git a/ripd/ChangeLog b/ripd/ChangeLog
index 0f37179..2cf199e 100644
--- a/ripd/ChangeLog
+++ b/ripd/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-08 Paul Jakma <paul@dishone.st>
+
+	* rip_zebra.c: sync with zclient changes.
+	* rip_interface.c: ditto.
+
 2004-05-05 Anthony.Golia@morganstanley.com
 
 	* ripd.c: (rip_update_jitter) Bound jitter to a more sensible
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index 1d6ce04..3d69d6c 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -786,7 +786,8 @@
   struct connected *ifc;
   struct prefix *p;
 
-  ifc = zebra_interface_address_add_read (zclient->ibuf);
+  ifc = zebra_interface_address_read (ZEBRA_INTERFACE_ADDRESS_ADD, 
+                                      zclient->ibuf);
 
   if (ifc == NULL)
     return 0;
@@ -841,7 +842,8 @@
   struct connected *ifc;
   struct prefix *p;
 
-  ifc = zebra_interface_address_delete_read (zclient->ibuf);
+  ifc = zebra_interface_address_read (ZEBRA_INTERFACE_ADDRESS_DELETE,
+                                      zclient->ibuf);
   
   if (ifc)
     {
diff --git a/ripd/rip_zebra.c b/ripd/rip_zebra.c
index dcd82a4..437e3c6 100644
--- a/ripd/rip_zebra.c
+++ b/ripd/rip_zebra.c
@@ -66,7 +66,7 @@
 	  api.distance = distance;
 	}
 
-      zapi_ipv4_add (zclient, p, &api);
+      zapi_ipv4_route (ZEBRA_IPV4_ROUTE_ADD, zclient, p, &api);
 
       rip_global_route_changes++;
     }
@@ -90,7 +90,7 @@
       SET_FLAG (api.message, ZAPI_MESSAGE_METRIC);
       api.metric = metric;
 
-      zapi_ipv4_delete (zclient, p, &api);
+      zapi_ipv4_route (ZEBRA_IPV4_ROUTE_DELETE, zclient, p, &api);
 
       rip_global_route_changes++;
     }
@@ -331,7 +331,8 @@
       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;
 	}
     }
@@ -392,7 +393,7 @@
 		redist_type[i].str_min_len) == 0) 
       {
 	rip_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;
       }
   }
@@ -458,7 +459,7 @@
 		redist_type[i].str_min_len) == 0) 
       {
 	rip_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;
       }
   }
@@ -527,7 +528,7 @@
       {
 	rip_redistribute_metric_set (redist_type[i].type, metric);
 	rip_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;
       }
   }
