diff -Naur transmission-2.73/third-party/miniupnp/connecthostport.c transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/connecthostport.c
--- transmission-2.73/third-party/miniupnp/connecthostport.c	2012-10-24 13:01:10.429654016 +0000
+++ transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/connecthostport.c	2012-12-08 17:06:33.040632320 +0000
@@ -24,6 +24,7 @@
 #else /* #ifdef _WIN32 */
 #include <unistd.h>
 #include <sys/param.h>
+#include <sys/select.h>
 #include <errno.h>
 #define closesocket close
 #include <netdb.h>
diff -Naur transmission-2.73/third-party/miniupnp/miniupnpc.c transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/miniupnpc.c
--- transmission-2.73/third-party/miniupnp/miniupnpc.c	2012-10-24 13:01:10.457703424 +0000
+++ transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/miniupnpc.c	2012-12-08 17:09:12.018087936 +0000
@@ -17,7 +17,7 @@
 #endif
 #endif
 
-#if !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(MACOSX) && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__sun)
+#if !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(MACOSX) && !defined(_WIN32) && !defined(__CYGWIN__) && !defined(__sun) && !defined(__HAIKU__)
 #define HAS_IP_MREQN
 #endif
 
diff -Naur transmission-2.73/third-party/miniupnp/portlistingparse.c transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/portlistingparse.c
--- transmission-2.73/third-party/miniupnp/portlistingparse.c	2012-10-24 13:01:10.221511680 +0000
+++ transmission-2.73-haiku/transmission-2.73/third-party/miniupnp/portlistingparse.c	2012-12-08 17:09:49.941359104 +0000
@@ -28,7 +28,7 @@
 
 /* Helper function */
 static UNSIGNED_INTEGER
-atoui(const char * p, int l)
+_atoui(const char * p, int l)
 {
 	UNSIGNED_INTEGER r = 0;
 	while(l > 0 && *p)
@@ -92,7 +92,7 @@
 		pm->remoteHost[l] = '\0';
 		break;
 	case NewExternalPort:
-		pm->externalPort = (unsigned short)atoui(data, l);
+		pm->externalPort = (unsigned short)_atoui(data, l);
 		break;
 	case NewProtocol:
 		if(l > 3)
@@ -101,21 +101,21 @@
 		pm->protocol[l] = '\0';
 		break;
 	case NewInternalPort:
-		pm->internalPort = (unsigned short)atoui(data, l);
+		pm->internalPort = (unsigned short)_atoui(data, l);
 		break;
 	case NewInternalClient:
 		memcpy(pm->internalClient, data, l);
 		pm->internalClient[l] = '\0';
 		break;
 	case NewEnabled:
-		pm->enabled = (unsigned char)atoui(data, l);
+		pm->enabled = (unsigned char)_atoui(data, l);
 		break;
 	case NewDescription:
 		memcpy(pm->description, data, l);
 		pm->description[l] = '\0';
 		break;
 	case NewLeaseTime:
-		pm->leaseTime = atoui(data, l);
+		pm->leaseTime = _atoui(data, l);
 		break;
 	default:
 		break;
