diff --git a/drivers/virtio-net.cc b/drivers/virtio-net.cc
index 92e3d639f32bf1df9e807057e8b3d417c27659e0..c5a41d18d99c7896d0aeb05121301a93ce573a35 100644
--- a/drivers/virtio-net.cc
+++ b/drivers/virtio-net.cc
@@ -545,6 +545,10 @@ int net::tx_locked(struct mbuf* m_head, bool flush)
         }
     }
 
+    if (_mergeable_bufs) {
+        req->mhdr.num_buffers = 0;
+    }
+
     vq->init_sg();
     vq->add_out_sg(static_cast<void*>(&req->mhdr), _hdr_size);
 
@@ -553,7 +557,6 @@ int net::tx_locked(struct mbuf* m_head, bool flush)
 
         if (frag_len != 0) {
             net_d("Frag len=%d:", frag_len);
-            req->mhdr.num_buffers++;
 
             vq->add_out_sg(m->m_hdr.mh_data, m->m_hdr.mh_len);
             tx_bytes += frag_len;