diff --git a/src/netcode/i_tcp.c b/src/netcode/i_tcp.c
index ed1f5b4e749d3734e3876b0826d82591235218e1..442ed981781b041c71f4709dc947391a9a7e0284 100644
--- a/src/netcode/i_tcp.c
+++ b/src/netcode/i_tcp.c
@@ -1211,11 +1211,16 @@ static SINT8 SOCK_NetMakeNodewPort(const char *address, const char *port)
 		// test ip address of server
 		for (i = 0; i < mysocketses; ++i)
 		{
+#ifdef __HAIKU__
+			// Haiku doesn't appreciate empty packets, so just hope for the best.
+			if (runp->ai_addr->sa_family == myfamily[i])
+#else
 			/* sendto tests that there is a network to this
 				address */
 			if (runp->ai_addr->sa_family == myfamily[i] &&
 					sendto(mysockets[i], NULL, 0, 0,
 						runp->ai_addr, runp->ai_addrlen) == 0)
+#endif
 			{
 				memcpy(&clientaddress[newnode], runp->ai_addr, runp->ai_addrlen);
 				break;