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);
