--- 2.2.19/net/core/neighbour.c 2001-03-25 11:31:12.000000000 -0500 +++ fixed/net/core/neighbour.c 2002-09-16 12:26:34.000000000 -0400 @@ -621,11 +621,11 @@ if (skb) { if (skb_queue_len(&neigh->arp_queue) >= neigh->parms->queue_len) { struct sk_buff *buff; - buff = neigh->arp_queue.prev; + buff = neigh->arp_queue.next; __skb_unlink(buff, &neigh->arp_queue); kfree_skb(buff); } - __skb_queue_head(&neigh->arp_queue, skb); + __skb_queue_tail(&neigh->arp_queue, skb); } end_bh_atomic(); return 1;