diff --git a/sys/net/gnrc/network_layer/sixlowpan/nd/router/gnrc_sixlowpan_nd_router.c b/sys/net/gnrc/network_layer/sixlowpan/nd/router/gnrc_sixlowpan_nd_router.c
index c10d4ba4933a8af12a92d4071b1fcbdcf8f5faf7..060863548ad322379bbb75971c16e9ccdbb18434 100644
--- a/sys/net/gnrc/network_layer/sixlowpan/nd/router/gnrc_sixlowpan_nd_router.c
+++ b/sys/net/gnrc/network_layer/sixlowpan/nd/router/gnrc_sixlowpan_nd_router.c
@@ -52,7 +52,9 @@ static gnrc_sixlowpan_nd_router_prf_t *_get_free_prefix(ipv6_addr_t *prefix, siz
             return &_prefixes[i];
         }
 
-        if ((prf == NULL) && ipv6_addr_is_unspecified(&_prefixes[i].prefix->addr)) {
+        if ((prf == NULL) &&
+            ((_prefixes[i].prefix == NULL) ||
+             ipv6_addr_is_unspecified(&_prefixes[i].prefix->addr))) {
             prf = &_prefixes[i];
         }
     }