diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index eadd07f..68cb117 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,13 @@
+2005-11-14 Paul Jakma <paul.jakma@sun.com>
+
+	* bgp_route.c: (bgp_process_rsclient) convert to new workqueue
+          specs and shut up gcc, which complains about cast from void
+          via function parameters, for some dumb reason. Do the cast
+          inside the function instead.
+          (bgp_process_main,bgp_processq_del) ditto.
+          (bgp_clear_route_node) ditto.
+          (bgp_clear_node_queue_del) ditto.
+
 2005-11-03 Paul Jakma <paul.jakma@sun.com>
 
 	* bgp_damp.c: (bgp_reuse_timer) struct bgp can be retrieved via
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 0658cab..f2621c1 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -1242,8 +1242,9 @@
 };
 
 static wq_item_status
-bgp_process_rsclient (struct bgp_process_queue *pq)
+bgp_process_rsclient (struct work_queue *wq, void *data)
 {
+  struct bgp_process_queue *pq = data;
   struct bgp *bgp = pq->bgp;
   struct bgp_node *rn = pq->rn;
   afi_t afi = pq->afi;
@@ -1309,8 +1310,9 @@
 }
 
 static wq_item_status
-bgp_process_main (struct bgp_process_queue *pq)
+bgp_process_main (struct work_queue *wq, void *data)
 {
+  struct bgp_process_queue *pq = data;
   struct bgp *bgp = pq->bgp;
   struct bgp_node *rn = pq->rn;
   afi_t afi = pq->afi;
@@ -1390,8 +1392,10 @@
 }
 
 static void
-bgp_processq_del (struct bgp_process_queue *pq)
+bgp_processq_del (struct work_queue *wq, void *data)
 {
+  struct bgp_process_queue *pq = data;
+  
   bgp_unlock_node (pq->rn);
   XFREE (MTYPE_BGP_PROCESS_QUEUE, pq);
 }
@@ -2450,8 +2454,9 @@
 };
 
 static wq_item_status
-bgp_clear_route_node (struct bgp_clear_node_queue *cq)
+bgp_clear_route_node (struct work_queue *wq, void *data)
 {
+  struct bgp_clear_node_queue *cq = data;
   struct bgp_adj_in *ain;
   struct bgp_adj_out *aout;
   struct bgp_info *ri;
@@ -2493,8 +2498,9 @@
 }
 
 static void
-bgp_clear_node_queue_del (struct bgp_clear_node_queue *cq)
+bgp_clear_node_queue_del (struct work_queue *wq, void *data)
 {
+  struct bgp_clear_node_queue *cq = data;
   bgp_unlock_node (cq->rn); 
   peer_unlock (cq->peer); /* bgp_clear_node_queue_del */
   XFREE (MTYPE_BGP_CLEAR_NODE_QUEUE, cq);
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index f943d65..16f83ae 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,12 @@
+2005-11-14 Paul Jakma <paul.jakma@sun.com>
+
+	* zebra_rib.c: (rib_process) convert to new workqueue specs and
+	  shut up gcc, which complains about cast from void via
+	  function parameters, for some dumb reason. Do the cast
+	  inside the function instead.
+	  (rib_queue_qnode_del) ditto.
+	  (rib_queue_init) no need for the casts anymore.
+
 2005-11-12 Alexander Gall <gall@switch.ch>
 
 	* See [quagga-dev 1815]
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 060f46d..fb983bd 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -881,8 +881,9 @@
 
 /* Core function for processing routing information base. */
 static wq_item_status
-rib_process (struct zebra_queue_node_t *qnode)
+rib_process (struct work_queue *wq, void *data)
 {
+  struct zebra_queue_node_t *qnode = data;
   struct rib *rib;
   struct rib *next;
   struct rib *fib = NULL;
@@ -1052,8 +1053,9 @@
 
 /* free zebra_queue_node_t */
 static void
-rib_queue_qnode_del (struct zebra_queue_node_t *qnode)
+rib_queue_qnode_del (struct work_queue *wq, void *data)
 {
+  struct zebra_queue_node_t *qnode = data;
   route_unlock_node (qnode->node);
   
   if (qnode->del)
@@ -1076,13 +1078,11 @@
     }
 
   /* fill in the work queue spec */
-  zebra->ribq->spec.workfunc = (wq_item_status (*) (void *))&rib_process;
+  zebra->ribq->spec.workfunc = &rib_process;
   zebra->ribq->spec.errorfunc = NULL;
-  zebra->ribq->spec.del_item_data = (void (*) (void *)) &rib_queue_qnode_del;
+  zebra->ribq->spec.del_item_data = &rib_queue_qnode_del;
   /* XXX: TODO: These should be runtime configurable via vty */
   zebra->ribq->spec.max_retries = 3;
-  zebra->ribq->spec.hold = 500;
-  zebra->ribq->spec.delay = 10;
   
   return;
 }
