Index: src/main-ban.c
--- src/main-ban.c.orig
+++ src/main-ban.c
@@ -408,8 +408,8 @@ static bool test_local_ipv6(struct sockaddr_in6 * remo
 	unsigned index = 0;
 	
 	for (index = 0; index < 4; index ++) {
-		uint32_t l = local->sin6_addr.s6_addr32[index] & network->sin6_addr.s6_addr32[index];
-		uint32_t r = remote->sin6_addr.s6_addr32[index] & network->sin6_addr.s6_addr32[index];
+		uint32_t l = local->sin6_addr.__u6_addr.__u6_addr32[index] & network->sin6_addr.__u6_addr.__u6_addr32[index];
+		uint32_t r = remote->sin6_addr.__u6_addr.__u6_addr32[index] & network->sin6_addr.__u6_addr.__u6_addr32[index];
 		if (l != r) 
 			return false;
 	}
@@ -448,4 +448,4 @@ void if_address_cleanup(main_server_st * s)
 
 	s->if_addresses = NULL;
 	s->if_addresses_count = 0;
-}
\ No newline at end of file
+}
