diff --git a/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c b/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c
index f56185dd8c6fdfadeb439f6e302244e3eb0f281d..66b2032f5e44609c34106eaf6aa4ed76dab76477 100644
--- a/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c
+++ b/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c
@@ -26,6 +26,7 @@
 #include "net/ng_netapi.h"
 #include "net/ng_netif.h"
 #include "net/ng_netif/hdr.h"
+#include "net/ng_sixlowpan/netif.h"
 
 #include "net/ng_ipv6/netif.h"
 
@@ -474,14 +475,24 @@ void ng_ipv6_netif_init_by_dev(void)
                            sizeof(if_type)) != -ENOTSUP) &&
             (if_type == NG_NETTYPE_SIXLOWPAN)) {
             uint16_t src_len = 8;
-            DEBUG("Set 6LoWPAN flag\n");
+            uint16_t max_frag_size = UINT16_MAX;
+
+            DEBUG("ipv6 netif: Set 6LoWPAN flag\n");
             ipv6_ifs[i].flags |= NG_IPV6_NETIF_FLAGS_SIXLOWPAN;
             /* use EUI-64 (8-byte address) for IID generation and for sending
              * packets */
             ng_netapi_set(ifs[i], NG_NETOPT_SRC_LEN, 0, &src_len,
                           sizeof(src_len)); /* don't care for result */
-        }
 
+            if (ng_netapi_get(ifs[i], NG_NETOPT_MAX_PACKET_SIZE,
+                              0, &max_frag_size, sizeof(max_frag_size)) < 0) {
+                /* if error we assume it works */
+                DEBUG("ipv6 netif: Can not get max packet size from interface %"
+                      PRIkernel_pid "\n", ifs[i]);
+            }
+
+            ng_sixlowpan_netif_add(ifs[i], max_frag_size);
+        }
 #endif
 
         if ((ng_netapi_get(ifs[i], NG_NETOPT_IPV6_IID, 0, &iid,
diff --git a/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c b/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c
index b89d48251ef07dbed45d6f71c0ab1a4af934f7de..94c1b35f818f578b0a415eff127703c99dc94a2f 100644
--- a/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c
+++ b/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c
@@ -196,19 +196,9 @@ static void _send(ng_pktsnip_t *pkt)
     iface = ng_sixlowpan_netif_get(hdr->if_pid);
 
     if (iface == NULL) {
-        if (ng_netapi_get(hdr->if_pid, NG_NETOPT_MAX_PACKET_SIZE,
-                          0, &max_frag_size, sizeof(max_frag_size)) < 0) {
-            /* if error we assume it works */
-            DEBUG("6lo: can not get max packet size from interface %"
-                  PRIkernel_pid "\n", hdr->if_pid);
-            max_frag_size = UINT16_MAX;
-        }
-
-        ng_sixlowpan_netif_add(hdr->if_pid, max_frag_size);
-        iface = ng_sixlowpan_netif_get(hdr->if_pid);
-    }
-    else {
-        max_frag_size = iface->max_frag_size;
+        DEBUG("6lo: Can not get 6LoWPAN specific interface information.\n");
+        ng_pktbuf_release(pkt);
+        return;
     }
 
 #ifdef MODULE_NG_SIXLOWPAN_IPHC