diff -up iptables-1.4.0/ip6tables.c.in6_u iptables-1.4.0/ip6tables.c --- iptables-1.4.0/ip6tables.c.in6_u 2008-03-03 14:33:30.000000000 +0100 +++ iptables-1.4.0/ip6tables.c 2008-03-03 14:38:54.000000000 +0100 @@ -678,7 +678,7 @@ parse_hostnetworkmask(const char *name, for (i = 0, j = 0; i < n; i++) { int k; for (k = 0; k < 4; k++) - addrp[j].in6_u.u6_addr32[k] &= maskp->in6_u.u6_addr32[k]; + addrp[j].s6_addr32[k] &= maskp->s6_addr32[k]; j++; for (k = 0; k < j - 1; k++) { if (IN6_ARE_ADDR_EQUAL(&addrp[k], &addrp[j - 1])) { diff -up iptables-1.4.0/libiptc/libip6tc.c.in6_u iptables-1.4.0/libiptc/libip6tc.c --- iptables-1.4.0/libiptc/libip6tc.c.in6_u 2008-03-03 14:33:31.000000000 +0100 +++ iptables-1.4.0/libiptc/libip6tc.c 2008-03-03 14:33:31.000000000 +0100 @@ -113,7 +113,7 @@ typedef unsigned int socklen_t; #include "libiptc.c" #define BIT6(a, l) \ - ((ntohl(a->in6_u.u6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1) + ((ntohl(a->s6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1) int ipv6_prefix_length(const struct in6_addr *a)