diff --git a/sgsnemu/tun.c b/sgsnemu/tun.c
index 3436972..576e32e 100644
--- a/sgsnemu/tun.c
+++ b/sgsnemu/tun.c
@@ -1,17 +1,12 @@
 /* 
  * TUN interface functions.
- * Copyright (C) 2002, 2003 Mondru AB.
+ * Copyright (C) 2002, 2003, 2004 Mondru AB.
  * 
  * The contents of this file may be used under the terms of the GNU
  * General Public License Version 2, provided that the above copyright
  * notice and this permission notice is included in all copies or
  * substantial portions of the software.
  * 
- * The initial developer of the original code is
- * Jens Jakobsen <jj@openggsn.org>
- * 
- * Contributor(s):
- * 
  */
 
 /*
@@ -55,6 +50,9 @@
 #include <net/if.h>
 #include <net/if_tun.h>
 
+#elif defined (__APPLE__)
+#include <net/if.h>
+
 #elif defined (__sun__)
 #include <stropts.h>
 #include <sys/sockio.h>
@@ -336,7 +334,7 @@
   this->addrs++;
   return 0;
 
-#elif defined (__FreeBSD__)
+#elif defined (__FreeBSD__) || defined (__APPLE__)
 
   int fd;
   struct ifaliasreq      areq;
@@ -415,7 +413,7 @@
 #if defined(__linux__)
   ifr.ifr_netmask.sa_family = AF_INET;
 
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined (__APPLE__)
   ((struct sockaddr_in *) &ifr.ifr_addr)->sin_len = 
     sizeof (struct sockaddr_in);
   ((struct sockaddr_in *) &ifr.ifr_dstaddr)->sin_len = 
@@ -467,7 +465,7 @@
     ((struct sockaddr_in *) &ifr.ifr_netmask)->sin_addr.s_addr = 
       netmask->s_addr;
 
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined (__APPLE__)
     ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr = 
       netmask->s_addr;
 
@@ -494,7 +492,7 @@
 
   /* TODO: How does it work on Solaris? */
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined (__APPLE__)
   tun_sifflags(this, IFF_UP | IFF_RUNNING); /* TODO */
   return tun_addroute(this, addr, addr, netmask);
 #else
@@ -543,7 +541,7 @@
   close(fd);
   return 0;
 
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined (__APPLE__)
 
 struct {
   struct rt_msghdr rt;
@@ -610,7 +608,7 @@
 #if defined(__linux__)
   struct ifreq ifr;
 
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined (__APPLE__)
   char devname[IFNAMSIZ+5]; /* "/dev/" + ifname */
   int devnum;
   struct ifaliasreq areq;
@@ -657,7 +655,7 @@
   ioctl((*tun)->fd, TUNSETNOCSUM, 1); /* Disable checksums */
   return 0;
   
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined (__APPLE__)
 
   /* Find suitable device */
   for (devnum = 0; devnum < 255; devnum++) { /* TODO 255 */ 
@@ -784,7 +782,7 @@
 int tun_decaps(struct tun_t *this)
 {
 
-#if defined(__linux__) || defined (__FreeBSD__)
+#if defined(__linux__) || defined (__FreeBSD__) || defined (__APPLE__)
 
   unsigned char buffer[PACKET_MAX];
   int status;
@@ -825,7 +823,7 @@
 int tun_encaps(struct tun_t *tun, void *pack, unsigned len)
 {
 
-#if defined(__linux__) || defined (__FreeBSD__)
+#if defined(__linux__) || defined (__FreeBSD__) || defined (__APPLE__)
 
   return write(tun->fd, pack, len);
 
