diff --git a/bgpd/bgp_advertise.c b/bgpd/bgp_advertise.c
index ecf531f..1b17b66 100644
--- a/bgpd/bgp_advertise.c
+++ b/bgpd/bgp_advertise.c
@@ -186,10 +186,12 @@
   struct bgp_advertise *adv;
   struct bgp_advertise_attr *baa;
   struct bgp_advertise *next;
+  struct bgp_advertise_fifo *fhead;
 
   adv = adj->adv;
   baa = adv->baa;
   next = NULL;
+  fhead = (struct bgp_advertise_fifo *)&peer->sync[afi][safi]->withdraw;
 
   if (baa)
     {
@@ -201,10 +203,12 @@
 
       /* Unintern BGP advertise attribute.  */
       bgp_advertise_unintern (peer->hash[afi][safi], baa);
+
+      fhead = (struct bgp_advertise_fifo *)&peer->sync[afi][safi]->update;
     }
 
   /* Unlink myself from advertisement FIFO.  */
-  FIFO_DEL (adv);
+  BGP_ADV_FIFO_DEL (fhead, adv);
 
   /* Free memory.  */
   bgp_advertise_free (adj->adv);
@@ -264,7 +268,7 @@
   /* Add new advertisement to advertisement attribute list. */
   bgp_advertise_add (adv->baa, adv);
 
-  FIFO_ADD (&peer->sync[afi][safi]->update, &adv->fifo);
+  BGP_ADV_FIFO_ADD (&peer->sync[afi][safi]->update, &adv->fifo);
 }
 
 void
@@ -298,7 +302,7 @@
       adv->adj = adj;
 
       /* Add to synchronization entry for withdraw announcement.  */
-      FIFO_ADD (&peer->sync[afi][safi]->withdraw, &adv->fifo);
+      BGP_ADV_FIFO_ADD (&peer->sync[afi][safi]->withdraw, &adv->fifo);
 
       /* Schedule packet write. */
       BGP_WRITE_ON (peer->t_write, bgp_write, peer->fd);
@@ -391,9 +395,9 @@
       {
 	sync = XCALLOC (MTYPE_BGP_SYNCHRONISE, 
 	                sizeof (struct bgp_synchronize));
-	FIFO_INIT (&sync->update);
-	FIFO_INIT (&sync->withdraw);
-	FIFO_INIT (&sync->withdraw_low);
+	BGP_ADV_FIFO_INIT (&sync->update);
+	BGP_ADV_FIFO_INIT (&sync->withdraw);
+	BGP_ADV_FIFO_INIT (&sync->withdraw_low);
 	peer->sync[afi][safi] = sync;
 	peer->hash[afi][safi] = hash_create (baa_hash_key, baa_hash_cmp);
       }
