diff --git a/sys/net/gnrc/network_layer/ipv6/netif/gnrc_ipv6_netif.c b/sys/net/gnrc/network_layer/ipv6/netif/gnrc_ipv6_netif.c
index 4c72c8661c55ccdf73599a0832ebe9f568cd924a..1f21ea1b447c63e0378446e33548c6d87e53eaa9 100644
--- a/sys/net/gnrc/network_layer/ipv6/netif/gnrc_ipv6_netif.c
+++ b/sys/net/gnrc/network_layer/ipv6/netif/gnrc_ipv6_netif.c
@@ -756,10 +756,10 @@ void gnrc_ipv6_netif_init_by_dev(void)
         }
 
         if (gnrc_netapi_get(ifs[i], NETOPT_IS_WIRED, 0, &tmp, sizeof(int)) > 0) {
-            ipv6_if->flags = GNRC_IPV6_NETIF_FLAGS_IS_WIRED;
+            ipv6_if->flags |= GNRC_IPV6_NETIF_FLAGS_IS_WIRED;
         }
         else {
-            ipv6_if->flags = 0;
+            ipv6_if->flags &= ~GNRC_IPV6_NETIF_FLAGS_IS_WIRED;
         }
 
         mutex_unlock(&ipv6_if->mutex);