diff --git a/sys/net/gnrc/netif/gnrc_netif_raw.c b/sys/net/gnrc/netif/gnrc_netif_raw.c
index 7abb6cba6884c8de0beee6b4b89393ed6770de54..53be2147cf1d19de00d90b98cf62e6b24ad61ab7 100644
--- a/sys/net/gnrc/netif/gnrc_netif_raw.c
+++ b/sys/net/gnrc/netif/gnrc_netif_raw.c
@@ -100,8 +100,11 @@ static int _send(gnrc_netif_t *netif, gnrc_pktsnip_t *pkt)
         /* we don't need the netif snip: remove it */
         pkt = gnrc_pktbuf_remove_snip(pkt, pkt);
     }
+    /* prepare packet for sending */
     vector = gnrc_pktbuf_get_iovec(pkt, &n);
     if (vector != NULL) {
+        /* reassign for later release; vector is prepended to pkt */
+        pkt = vector;
         struct iovec *v = (struct iovec *)vector->data;
         netdev_t *dev = netif->dev;