diff -r 4d436da8400e masterserver/network.cpp
--- a/masterserver/network.cpp	Mon May 07 21:53:51 2012 -0400
+++ b/masterserver/network.cpp	Mon May 14 17:58:43 2012 +0200
@@ -444,7 +444,9 @@
 {
 	int		iErrorCode;
 	struct sockaddr_in address;
-	bool	bBroadCast = true;
+
+	// setsockopt needs an int, bool won't work
+	int		enable = 1;
 
 	memset (&address, 0, sizeof(address));
 	address.sin_family = AF_INET;
@@ -452,9 +454,9 @@
 	address.sin_port = htons( usPort );
 
 	// Allow the network socket to broadcast.
-	setsockopt( Socket, SOL_SOCKET, SO_BROADCAST, (const char *)&bBroadCast, sizeof( bBroadCast ));
+	setsockopt( Socket, SOL_SOCKET, SO_BROADCAST, (const char *)&enable, sizeof( enable ));
 	if ( bReUse )
-		setsockopt( Socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&bBroadCast, sizeof( bBroadCast ));
+		setsockopt( Socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&enable, sizeof( enable ));
 
 	iErrorCode = bind( Socket, (sockaddr *)&address, sizeof( address ));
 	if ( iErrorCode == SOCKET_ERROR )
diff -r 4d436da8400e src/network.cpp
--- a/src/network.cpp	Mon May 07 21:53:51 2012 -0400
+++ b/src/network.cpp	Mon May 14 17:58:43 2012 +0200
@@ -1117,7 +1117,9 @@
 {
 	int		iErrorCode;
 	struct sockaddr_in address;
-	bool	bBroadCast = true;
+
+	// setsockopt needs an int, bool won't work
+	int		enable = 1;
 
 	memset (&address, 0, sizeof(address));
 	address.sin_family = AF_INET;
@@ -1125,9 +1127,9 @@
 	address.sin_port = htons( usPort );
 
 	// Allow the network socket to broadcast.
-	setsockopt( Socket, SOL_SOCKET, SO_BROADCAST, (const char *)&bBroadCast, sizeof( bBroadCast ));
+	setsockopt( Socket, SOL_SOCKET, SO_BROADCAST, (const char *)&enable, sizeof( enable ));
 	if ( bReUse )
-		setsockopt( Socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&bBroadCast, sizeof( bBroadCast ));
+		setsockopt( Socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&enable, sizeof( enable ));
 
 	iErrorCode = bind( Socket, (sockaddr *)&address, sizeof( address ));
 	if ( iErrorCode == SOCKET_ERROR )
diff -r 4d436da8400e statsmaker/network.cpp
--- a/statsmaker/network.cpp	Mon May 07 21:53:51 2012 -0400
+++ b/statsmaker/network.cpp	Mon May 14 17:58:43 2012 +0200
@@ -525,7 +525,9 @@
 {
 	int		iErrorCode;
 	struct sockaddr_in address;
-	bool	bBroadCast = true;
+
+	// setsockopt needs an int, bool won't work
+	int		enable = 1;
 
 	memset (&address, 0, sizeof(address));
 	address.sin_family = AF_INET;
@@ -533,9 +535,9 @@
 	address.sin_port = htons( usPort );
 
 	// Allow the network socket to broadcast.
-	setsockopt( Socket, SOL_SOCKET, SO_BROADCAST, (const char *)&bBroadCast, sizeof( bBroadCast ));
+	setsockopt( Socket, SOL_SOCKET, SO_BROADCAST, (const char *)&enable, sizeof( enable ));
 	if ( bReUse )
-		setsockopt( Socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&bBroadCast, sizeof( bBroadCast ));
+		setsockopt( Socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&enable, sizeof( enable ));
 
 	iErrorCode = bind( Socket, (sockaddr *)&address, sizeof( address ));
 	if ( iErrorCode == SOCKET_ERROR )
diff -r 4d436da8400e upnpnat/upnpnat.cpp
--- a/upnpnat/upnpnat.cpp	Mon May 07 21:53:51 2012 -0400
+++ b/upnpnat/upnpnat.cpp	Mon May 14 17:58:43 2012 +0200
@@ -168,7 +168,7 @@
 	struct timeval tv;
 	tv.tv_sec = 3;
 	tv.tv_usec = 0;
-	ret=setsockopt(tcp_socket_fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof ( tv ) ); 
+	ret=setsockopt(tcp_socket_fd, SOL_SOCKET, SO_RCVTIMEO, (const char *)&tv, sizeof ( tv ) ); 
 
 	struct sockaddr_in r_address;
 
@@ -210,11 +210,8 @@
 	r_address.sin_port=htons(HTTPMU_HOST_PORT);
 	r_address.sin_addr.s_addr=inet_addr(HTTPMU_HOST_ADDRESS);
 
-	bool bOptVal = true;
-	int bOptLen = sizeof(bool);
-	int iOptLen = sizeof(int);
-
-	ret=setsockopt(udp_socket_fd, SOL_SOCKET, SO_BROADCAST, (char*)&bOptVal, bOptLen); 
+	int enable = 1;
+	ret=setsockopt(udp_socket_fd, SOL_SOCKET, SO_BROADCAST, (const char *)&enable, sizeof(enable)); 
 
 	ret=sendto(udp_socket_fd,send_buff.c_str(),send_buff.size(),0,(struct sockaddr*)&r_address,sizeof(struct sockaddr_in));
 
