diff --git a/sys/net/gnrc/routing/rpl/gnrc_rpl_control_messages.c b/sys/net/gnrc/routing/rpl/gnrc_rpl_control_messages.c
index bf7d30ff75e1127015648ff01c6e30317048ee4c..2e53e166b30f1e20e6dc48d5006b3d6d5ad34258 100644
--- a/sys/net/gnrc/routing/rpl/gnrc_rpl_control_messages.c
+++ b/sys/net/gnrc/routing/rpl/gnrc_rpl_control_messages.c
@@ -114,6 +114,11 @@ void gnrc_rpl_send(gnrc_pktsnip_t *pkt, kernel_pid_t iface, ipv6_addr_t *src, ip
     pkt = hdr;
 
     hdr = gnrc_netif_hdr_build(NULL, 0, NULL, 0);
+    if (hdr == NULL) {
+        DEBUG("RPL: Send - no space left in packet buffer\n");
+        gnrc_pktbuf_release(pkt);
+        return;
+    }
     ((gnrc_netif_hdr_t *)hdr->data)->if_pid = iface;
     LL_PREPEND(pkt, hdr);