diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 097a6b028dc05722dd1800e9a72a758e9cb3779f..ef797ff3d6b5c4f234dd08526e5a99171001d4b7 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -3024,7 +3024,8 @@ static void ctrl_thread(void* arg)
 				ip_addr=0;
 				/* TODO: IPv6 this here lookup */
 				if(startup->options&FTP_OPT_LOOKUP_PASV_IP
-					&& (host=gethostbyname(server_host_name()))!=NULL)
+					&& (host=gethostbyname(server_host_name()))!=NULL
+					&& host->h_addr_list[0] != NULL)
 					ip_addr=ntohl(*((ulong*)host->h_addr_list[0]));
 				if(ip_addr==0 && (ip_addr=startup->pasv_ip_addr.s_addr)==0)
 					ip_addr=ntohl(pasv_addr.in.sin_addr.s_addr);
diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 95de34bdd3166dda4bbb2b59797753983ee413d4..896b91961e3364889145452e9417a89082382bfe 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -943,6 +943,9 @@ static u_long resolve_ip(const char *inaddr)
 	if((host=gethostbyname(inaddr))==NULL)
 		return((u_long)INADDR_NONE);
 
+	if(host->h_addr_list[0] == NULL)
+		return (u_long)INADDR_NONE;
+
 	return(*((ulong*)host->h_addr_list[0]));
 }
 
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index a699d961a21211679d1df3c662e2711e1def53c0..0aeb7a3a2add8633a68dc86d5a68dc596cdb936c 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -381,6 +381,8 @@ u_long resolve_ip(char *addr)
 		return(inet_addr(addr));
 	if((host=gethostbyname(addr))==NULL)
 		return((u_long)INADDR_NONE);
+	if(host->h_addr_list[0] == NULL)
+		return (u_long)INADDR_NONE;
 	return(*((ulong*)host->h_addr_list[0]));
 }