+++ src/lib/sdl_net/SDLnet.c
@@ -122,11 +122,11 @@
 	} else {
 		address->host = inet_addr(host);
 		if ( address->host == INADDR_NONE ) {
-			struct hostent *hp;
+			struct addrinfo *ai;
 
-			hp = gethostbyname(host);
-			if ( hp ) {
-				memcpy(&address->host,hp->h_addr,hp->h_length);
+			retval = getaddrinfo(host, NULL, NULL, &ai);
+			if ( retval == 0 ) {
+				memcpy(&address->host,ai->ai_addr,ai->ai_addrlen);
 			} else {
 				retval = -1;
 			}
@@ -149,12 +149,15 @@
  */
 const char *SDLNet_ResolveIP(const IPaddress *ip)
 {
-	struct hostent *hp;
+	static char host[256];
 	struct in_addr in;
+	int err;
 
-	hp = gethostbyaddr((const char *)&ip->host, sizeof(ip->host), AF_INET);
-	if ( hp != NULL ) {
-		return hp->h_name;
+	err = getnameinfo((const struct sockaddr*) &ip->host,
+	                  sizeof (struct sockaddr), host, sizeof (host),
+			  NULL, 0, 0);
+	if ( err == 0 ) {
+		return host;
 	}
 
 	in.s_addr = ip->host;
