{
        if (!skb_queue_empty(list)) {
                __skb_queue_splice(list, (struct sk_buff *) head, head->next);
-               head->qlen = list->qlen;
+               head->qlen += list->qlen;
        }
 }
 
 {
        if (!skb_queue_empty(list)) {
                __skb_queue_splice(list, (struct sk_buff *) head, head->next);
-               head->qlen = list->qlen;
+               head->qlen += list->qlen;
                __skb_queue_head_init(list);
        }
 }
 {
        if (!skb_queue_empty(list)) {
                __skb_queue_splice(list, head->prev, (struct sk_buff *) head);
-               head->qlen = list->qlen;
+               head->qlen += list->qlen;
        }
 }
 
 {
        if (!skb_queue_empty(list)) {
                __skb_queue_splice(list, head->prev, (struct sk_buff *) head);
-               head->qlen = list->qlen;
+               head->qlen += list->qlen;
                __skb_queue_head_init(list);
        }
 }