Index: /trunk/src/VBox/Devices/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Devices/Makefile.kmk	(revision 22023)
+++ /trunk/src/VBox/Devices/Makefile.kmk	(revision 22024)
@@ -759,5 +759,4 @@
 
 # some day will be deleted
-VBOX_WITHOUT_SLIRP_CLIENT_ETHER=1
 
 Drivers_SOURCES += $(VBOX_SLIRP_SOURCES)
@@ -765,5 +764,4 @@
   $(file)_DEFS += \
       $(if $(VBOX_WITH_SLIRP_MEMORY_CHECK),RTMEM_WRAP_TO_EF_APIS,) \
-      $(if $(VBOX_WITHOUT_SLIRP_CLIENT_ETHER),VBOX_WITHOUT_SLIRP_CLIENT_ETHER,)	\
       $(if $(VBOX_WITH_DEBUG_NAT_SOCKETS),VBOX_WITH_DEBUG_NAT_SOCKETS,)	\
       $(if $(VBOX_WITH_SLIRP_MT),VBOX_WITH_SLIRP_MT,)
Index: /trunk/src/VBox/Devices/Network/slirp/bootp.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/bootp.c	(revision 22023)
+++ /trunk/src/VBox/Devices/Network/slirp/bootp.c	(revision 22024)
@@ -41,7 +41,5 @@
             bc->allocated = 1;
             paddr->s_addr = htonl(ntohl(special_addr.s_addr) | (i + START_ADDR));
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
             bc->addr.s_addr = paddr->s_addr;
-#endif
             return bc;
         }
@@ -130,16 +128,10 @@
 }
 
-#ifndef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
-static void bootp_reply(PNATState pData, struct bootp_t *bp)
-#else
 static void bootp_reply(PNATState pData, struct mbuf *m0)
-#endif
 {
     BOOTPClient *bc;
     struct mbuf *m; /* XXX: @todo vasily - it'd be better to reuse this mbuf here */
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
     struct bootp_t *bp = mtod(m0, struct bootp_t *);
     struct ethhdr *eh;
-#endif
     struct bootp_t *rbp;
     struct sockaddr_in saddr, daddr;
@@ -189,15 +181,8 @@
         return;
 
-#ifndef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
-    /* XXX: this is a hack to get the client mac address */
-    memcpy(client_ethaddr, bp->bp_hwaddr, 6);
-#endif
-
     if ((m = m_get(pData)) == NULL)
         return;
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
     eh = mtod(m, struct ethhdr *);
     memcpy(eh->h_source, bp->bp_hwaddr, ETH_ALEN); /* XXX: if_encap just swap source with dest*/
-#endif
     m->m_data += if_maxlinkhdr; /*reserve ether header */
     rbp = mtod(m, struct bootp_t *);
@@ -218,9 +203,5 @@
                 return;
             }
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
             memcpy(bc->macaddr, bp->bp_hwaddr, 6);
-#else
-            memcpy(bc->macaddr, client_ethaddr, 6);
-#endif
         }
     }
@@ -386,8 +367,4 @@
 
     if (bp->bp_op == BOOTP_REQUEST)
-#ifndef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
-        bootp_reply(pData, bp);
-#else
         bootp_reply(pData, m);
-#endif
-}
+}
Index: /trunk/src/VBox/Devices/Network/slirp/ip_output.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/ip_output.c	(revision 22023)
+++ /trunk/src/VBox/Devices/Network/slirp/ip_output.c	(revision 22024)
@@ -46,5 +46,4 @@
 #include "alias.h"
 
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
 static const uint8_t* rt_lookup_in_cache(PNATState pData, uint32_t dst)
 {
@@ -67,5 +66,4 @@
     return NULL; 
 }
-#endif
 
 /*
@@ -82,9 +80,8 @@
     register int hlen = sizeof(struct ip );
     int len, off, error = 0;
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
     extern uint8_t zerro_ethaddr[ETH_ALEN];
     struct ethhdr *eh = NULL;
     const uint8_t *eth_dst = NULL;
-#endif
+
     STAM_PROFILE_START(&pData->StatIP_output, a);
 
@@ -126,5 +123,4 @@
     }
 #endif
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
       /* Current TCP/IP stack hasn't routing information at
        * all so we need to calculate destination ethernet address
@@ -133,5 +129,4 @@
      if (memcmp(eh->h_source, zerro_ethaddr, ETH_ALEN) == 0)
          eth_dst = rt_lookup_in_cache(pData, ip->ip_dst.s_addr); 
-#endif
 
     /*
@@ -144,9 +139,6 @@
         ip->ip_sum = 0;
         ip->ip_sum = cksum(m, hlen);
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
-        if (eth_dst != NULL) {
+        if (eth_dst != NULL) 
             memcpy(eh->h_source, eth_dst, ETH_ALEN); 
-        }
-#endif
         {
             int rc;
@@ -203,5 +195,4 @@
             mhip = mtod(m, struct ip *);
             *mhip = *ip;
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
             /* we've calculated eth_dst for first packet */
             eh = (struct ethhdr *)MBUF_HEAD(m);
@@ -209,5 +200,4 @@
                 memcpy(eh->h_source, eth_dst, ETH_ALEN); 
             }
-#endif
 
 #if 0 /* No options */
Index: /trunk/src/VBox/Devices/Network/slirp/slirp.c
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/slirp.c	(revision 22023)
+++ /trunk/src/VBox/Devices/Network/slirp/slirp.c	(revision 22024)
@@ -528,7 +528,5 @@
     special_addr.s_addr = u32NetAddr;
 #endif
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
     pData->slirp_ethaddr = &special_ethaddr[0];
-#endif
     alias_addr.s_addr = special_addr.s_addr | htonl(CTL_ALIAS);
     /* @todo: add ability to configure this staff */
@@ -1297,19 +1295,4 @@
 }
 
-#ifndef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
-#define ETH_ALEN        6
-#define ETH_HLEN        14
-
-#define ARPOP_REQUEST   1               /* ARP request                  */
-#define ARPOP_REPLY     2               /* ARP reply                    */
-
-struct ethhdr
-{
-    unsigned char   h_dest[ETH_ALEN];           /* destination eth addr */
-    unsigned char   h_source[ETH_ALEN];         /* source ether addr    */
-    unsigned short  h_proto;                    /* packet type ID field */
-};
-AssertCompileSize(struct ethhdr, 14);
-#endif
 
 struct arphdr
@@ -1348,5 +1331,5 @@
 
     mr = m_get(pData);
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
+
     reh = mtod(mr, struct ethhdr *);
     memcpy(reh->h_source, eh->h_source, ETH_ALEN); /* XXX: if_encap will swap src and dst*/
@@ -1354,5 +1337,5 @@
         reh->h_source, reh->h_dest));
     Log4(("NAT: arp: %R[IP4]\n", &tip));
-#endif
+
     mr->m_data += if_maxlinkhdr;
     mr->m_len = sizeof(struct arphdr);
@@ -1423,5 +1406,5 @@
     }
     Log4(("NAT: in:%R[ether]->%R[ether]\n", &eh->h_source, &eh->h_dest));
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
+
     if (memcmp(eh->h_source, special_ethaddr, ETH_ALEN) == 0)
     {
@@ -1431,5 +1414,4 @@
         return;
     }
-#endif
 
     m = m_get(pData);
@@ -1497,10 +1479,4 @@
     }
 
-#ifndef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
-    memcpy(eh->h_dest, client_ethaddr, ETH_ALEN);
-    memcpy(eh->h_source, special_ethaddr, ETH_ALEN - 1);
-    /* XXX: not correct */
-    eh->h_source[5] = CTL_ALIAS;
-#else
     if (memcmp(eh->h_source, special_ethaddr, ETH_ALEN) != 0)
     {
@@ -1514,5 +1490,5 @@
         }
     }
-#endif
+
     eh->h_proto = htons(eth_proto);
     memcpy(buf, mtod(m, uint8_t *), m->m_len);
Index: /trunk/src/VBox/Devices/Network/slirp/slirp.h
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/slirp.h	(revision 22023)
+++ /trunk/src/VBox/Devices/Network/slirp/slirp.h	(revision 22024)
@@ -326,10 +326,9 @@
 #endif
 
-# ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
-#  define ETH_ALEN        6
-#  define ETH_HLEN        14
-
-#  define ARPOP_REQUEST   1               /* ARP request                  */
-#  define ARPOP_REPLY     2               /* ARP reply                    */
+# define ETH_ALEN        6
+# define ETH_HLEN        14
+
+# define ARPOP_REQUEST   1               /* ARP request                  */
+# define ARPOP_REPLY     2               /* ARP reply                    */
 
 struct ethhdr
@@ -340,5 +339,4 @@
 };
 AssertCompileSize(struct ethhdr, 14);
-# endif
 #if defined(VBOX_SLIRP_ALIAS)
 
Index: /trunk/src/VBox/Devices/Network/slirp/slirp_state.h
===================================================================
--- /trunk/src/VBox/Devices/Network/slirp/slirp_state.h	(revision 22023)
+++ /trunk/src/VBox/Devices/Network/slirp/slirp_state.h	(revision 22024)
@@ -40,7 +40,5 @@
     bool allocated;
     uint8_t macaddr[6];
-#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
     struct in_addr addr;
-#endif
 } BOOTPClient;
 
@@ -142,12 +140,8 @@
     struct in_addr loopback_addr;
     uint32_t netmask;
-#ifndef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
+#ifndef VBOX_WITH_NAT_SERVICE
     uint8_t client_ethaddr[6];
-#else
-# ifndef VBOX_WITH_NAT_SERVICE
-    uint8_t client_ethaddr[6];
-# endif
+#endif
     const uint8_t *slirp_ethaddr;
-#endif
     struct ex_list *exec_list;
     char slirp_hostname[33];
