--- ipfw3-2012.orig/ipfw/include/timeconv.h
+++ ipfw3-2012/ipfw/include/timeconv.h
@@ -1,13 +1,15 @@
 /*
  * simple override for _long_to_time()
  */
+#include <stdint.h>
+
 #ifndef _TIMECONV_H_
 #define _TIMECONV_H_
 static __inline time_t
 _long_to_time(long tlong)
 {
-    if (sizeof(long) == sizeof(__int32_t))
-        return((time_t)(__int32_t)(tlong));
+    if (sizeof(long) == sizeof(int32_t))
+        return((time_t)(int32_t)(tlong));
     return((time_t)tlong);
 }
 
--- ipfw3-2012.orig/sys/netinet/ip_fw.h
+++ ipfw3-2012/sys/netinet/ip_fw.h
@@ -445,10 +445,10 @@
 
 /* Apply ipv6 mask on ipv6 addr */
 #define APPLY_MASK(addr,mask)                          \
-    (addr)->__u6_addr.__u6_addr32[0] &= (mask)->__u6_addr.__u6_addr32[0]; \
-    (addr)->__u6_addr.__u6_addr32[1] &= (mask)->__u6_addr.__u6_addr32[1]; \
-    (addr)->__u6_addr.__u6_addr32[2] &= (mask)->__u6_addr.__u6_addr32[2]; \
-    (addr)->__u6_addr.__u6_addr32[3] &= (mask)->__u6_addr.__u6_addr32[3];
+    (addr)->s6_addr32[0] &= (mask)->s6_addr32[0]; \
+    (addr)->s6_addr32[1] &= (mask)->s6_addr32[1]; \
+    (addr)->s6_addr32[2] &= (mask)->s6_addr32[2]; \
+    (addr)->s6_addr32[3] &= (mask)->s6_addr32[3];
 
 /* Structure for ipv6 */
 typedef struct _ipfw_insn_ip6 {
