diff --git a/sys/include/net/gnrc/sixlowpan/frag.h b/sys/include/net/gnrc/sixlowpan/frag.h
index f557470ebc06502f74fc1aa77ae191da471e53a8..e3147ccb5895431c1e2c518b21db6efa6a010834 100644
--- a/sys/include/net/gnrc/sixlowpan/frag.h
+++ b/sys/include/net/gnrc/sixlowpan/frag.h
@@ -67,6 +67,10 @@ typedef struct {
     uint8_t src_len;                            /**< length of gnrc_sixlowpan_rbuf_t::src */
     uint8_t dst_len;                            /**< length of gnrc_sixlowpan_rbuf_t::dst */
     uint16_t tag;                               /**< the datagram's tag */
+    /**
+     * @brief   The number of bytes currently received of the complete datagram
+     */
+    uint16_t current_size;
 } gnrc_sixlowpan_rbuf_t;
 
 /**
diff --git a/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.c b/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.c
index 8aef46371ab743a8efe35d90ce82bceb2ea313a8..070dfee2d9aa7bb259a89c2a7b8b071d774a9a2d 100644
--- a/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.c
+++ b/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.c
@@ -152,12 +152,12 @@ void rbuf_add(gnrc_netif_hdr_t *netif_hdr, gnrc_pktsnip_t *pkt,
 
     if (_rbuf_update_ints(entry, offset, frag_size)) {
         DEBUG("6lo rbuf: add fragment data\n");
-        entry->cur_size += (uint16_t)frag_size;
+        entry->super.current_size += (uint16_t)frag_size;
         memcpy(((uint8_t *)entry->super.pkt->data) + offset + data_offset, data,
                frag_size - data_offset);
     }
 
-    if (entry->cur_size == entry->super.pkt->size) {
+    if (entry->super.current_size == entry->super.pkt->size) {
         gnrc_pktsnip_t *netif = gnrc_netif_hdr_build(entry->super.src,
                                                      entry->super.src_len,
                                                      entry->super.dst,
@@ -337,7 +337,7 @@ static rbuf_t *_rbuf_get(const void *src, size_t src_len,
     res->super.src_len = src_len;
     res->super.dst_len = dst_len;
     res->super.tag = tag;
-    res->cur_size = 0;
+    res->super.current_size = 0;
 
     DEBUG("6lo rfrag: entry %p (%s, ", (void *)res,
           gnrc_netif_addr_to_str(res->super.src, res->super.src_len,
diff --git a/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.h b/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.h
index 405e424052506da6e8c455b0ec9e0fbde94ab13d..33b5a3dfc65328f4b20a1511ccc6948e2cc4cb75 100644
--- a/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.h
+++ b/sys/net/gnrc/network_layer/sixlowpan/frag/rbuf.h
@@ -65,7 +65,6 @@ typedef struct {
     rbuf_int_t *ints;                   /**< intervals of the fragment */
     uint32_t arrival;                   /**< time in microseconds of arrival of
                                          *   last received fragment */
-    uint16_t cur_size;                  /**< the datagram's current size */
 } rbuf_t;
 
 /**