diff --git a/sys/net/application_layer/nanocoap/nanocoap.c b/sys/net/application_layer/nanocoap/nanocoap.c
index c958201f9c953466b844114ce7e3f6734e950b90..d87fa6ad7cc01f61a25f9a86df37b18256b60579 100644
--- a/sys/net/application_layer/nanocoap/nanocoap.c
+++ b/sys/net/application_layer/nanocoap/nanocoap.c
@@ -62,7 +62,7 @@ int coap_parse(coap_pkt_t *pkt, uint8_t *buf, size_t len)
     coap_hdr_t *hdr = (coap_hdr_t *)buf;
     pkt->hdr = hdr;
 
-    uint8_t *pkt_pos = hdr->data;
+    uint8_t *pkt_pos = coap_hdr_data_ptr(hdr);
     uint8_t *pkt_end = buf + len;
 
     pkt->payload = NULL;
@@ -402,7 +402,7 @@ ssize_t coap_build_hdr(coap_hdr_t *hdr, unsigned type, uint8_t *token, size_t to
     hdr->id = htons(id);
 
     if (token_len) {
-        memcpy(hdr->data, token, token_len);
+        memcpy(coap_hdr_data_ptr(hdr), token, token_len);
     }
 
     return sizeof(coap_hdr_t) + token_len;