diff --git a/sys/net/network_layer/ng_ipv6/addr/ng_ipv6_addr.c b/sys/net/network_layer/ng_ipv6/addr/ng_ipv6_addr.c
index 6030979d956db5173c10ca21e6e1afbb783da40f..a5776762355fc3d6cee844f5dba014f3671570c6 100644
--- a/sys/net/network_layer/ng_ipv6/addr/ng_ipv6_addr.c
+++ b/sys/net/network_layer/ng_ipv6/addr/ng_ipv6_addr.c
@@ -74,7 +74,7 @@ void ng_ipv6_addr_init_prefix(ng_ipv6_addr_t *out, const ng_ipv6_addr_t *prefix,
         uint8_t mask = 0xff << (8 - (bits - (bytes * 8)));
 
         out->u8[bytes] &= ~mask;
-        out->u8[bytes] |= prefix->u8[bytes];
+        out->u8[bytes] |= (prefix->u8[bytes] & mask);
     }
 }