Index: trunk/src/VBox/Devices/Network/slirp/ip.h
===================================================================
--- trunk/src/VBox/Devices/Network/slirp/ip.h	(revision 14577)
+++ trunk/src/VBox/Devices/Network/slirp/ip.h	(revision 14616)
@@ -203,15 +203,15 @@
 
 #ifdef HAVE_SYS_TYPES32_H  /* Overcome some Solaris 2.x junk */
-#include <sys/types32.h>
-#else
-#if SIZEOF_CHAR_P == 4
+# include <sys/types32.h>
+#else
+# if SIZEOF_CHAR_P == 4
 typedef caddr_t caddr32_t;
-#else
-#if !defined(VBOX_WITH_BSD_REASS) && !defined(VBOX_WITH_BSD_TCP_REASS)
+# else
+#  if !defined(VBOX_WITH_BSD_REASS) && !defined(VBOX_WITH_BSD_TCP_REASS)
 typedef u_int32_t caddr32_t;
-#else /* !VBOX_WITH_BSD_REASS && !VBOX_WITH_BSD_TCP_REASS*/
+#  else /* !VBOX_WITH_BSD_REASS && !VBOX_WITH_BSD_TCP_REASS*/
 typedef caddr_t caddr32_t;
-#endif /* VBOX_WITH_BSD_REASS || VBOX_WITH_BSD_TCP_REASS*/
-#endif
+#  endif /* VBOX_WITH_BSD_REASS || VBOX_WITH_BSD_TCP_REASS*/
+# endif
 #endif
 
@@ -228,6 +228,10 @@
  */
 struct ipovly {
+#if !defined(VBOX_WITH_BSD_REASS) && !defined(VBOX_WITH_BSD_TCP_REASS)
         caddr32_t       ih_next, ih_prev;       /* for protocol sequence q's */
         u_int8_t        ih_x1;                  /* (unused) */
+#else /* !VBOX_WITH_BSD_REASS && !VBOX_WITH_BSD_TCP_REASS */
+        u_int8_t        ih_x1[9];                  /* (unused) */
+#endif /* VBOX_WITH_BSD_REASS || VBOX_WITH_BSD_TCP_REASS */
         u_int8_t        ih_pr;                  /* protocol */
         u_int16_t       ih_len;                 /* protocol length */
Index: trunk/src/VBox/Devices/Network/slirp/tcp_input.c
===================================================================
--- trunk/src/VBox/Devices/Network/slirp/tcp_input.c	(revision 14577)
+++ trunk/src/VBox/Devices/Network/slirp/tcp_input.c	(revision 14616)
@@ -470,6 +470,10 @@
          */
         tlen = ((struct ip *)ti)->ip_len;
+#if !defined(VBOX_WITH_BSD_REASS)
         ti->ti_next = ti->ti_prev = 0;
         ti->ti_x1 = 0;
+#else
+        memset(ti->ti_x1, 0, 9);
+#endif
         ti->ti_len = htons((u_int16_t)tlen);
         len = sizeof(struct ip ) + tlen;
Index: trunk/src/VBox/Devices/Network/slirp/tcp_subr.c
===================================================================
--- trunk/src/VBox/Devices/Network/slirp/tcp_subr.c	(revision 14577)
+++ trunk/src/VBox/Devices/Network/slirp/tcp_subr.c	(revision 14616)
@@ -76,6 +76,10 @@
         register struct tcpiphdr *n = &tp->t_template;
 
+#if !defined(VBOX_WITH_BSD_REASS)
         n->ti_next = n->ti_prev = 0;
         n->ti_x1 = 0;
+#else
+        memset(n->ti_x1, 0, 9);
+#endif
         n->ti_pr = IPPROTO_TCP;
         n->ti_len = htons(sizeof (struct tcpiphdr) - sizeof (struct ip));
@@ -154,6 +158,10 @@
         m->m_len = tlen;
 
+#if !defined(VBOX_WITH_BSD_REASS)
         ti->ti_next = ti->ti_prev = 0;
         ti->ti_x1 = 0;
+#else
+        memset(ti->ti_x1, 0, 9);
+#endif
         ti->ti_seq = htonl(seq);
         ti->ti_ack = htonl(ack);
Index: trunk/src/VBox/Devices/Network/slirp/udp.c
===================================================================
--- trunk/src/VBox/Devices/Network/slirp/udp.c	(revision 14577)
+++ trunk/src/VBox/Devices/Network/slirp/udp.c	(revision 14616)
@@ -123,7 +123,11 @@
          */
         if (udpcksum && uh->uh_sum) {
+#if !defined(VBOX_WITH_BSD_REASS)
           ((struct ipovly *)ip)->ih_next = 0;
           ((struct ipovly *)ip)->ih_prev = 0;
           ((struct ipovly *)ip)->ih_x1 = 0;
+#else
+          memset(((struct ipovly *)ip)->ih_x1, 0, 9);
+#endif
           ((struct ipovly *)ip)->ih_len = uh->uh_ulen;
           /* keep uh_sum for ICMP reply
@@ -265,6 +269,10 @@
          */
         ui = mtod(m, struct udpiphdr *);
+#if !defined(VBOX_WITH_BSD_REASS)
         ui->ui_next = ui->ui_prev = 0;
         ui->ui_x1 = 0;
+#else
+        memset(ui->ui_x1, 0, 9);
+#endif
         ui->ui_pr = IPPROTO_UDP;
         ui->ui_len = htons(m->m_len - sizeof(struct ip)); /* + sizeof (struct udphdr)); */
