diff --git a/main/acl.c b/main/acl.c
index 22248648fd97bcd60223f3d2e76316ac05e42adb..9a141a3735c3f512184f482ce163e7972e9666ef 100644
--- a/main/acl.c
+++ b/main/acl.c
@@ -144,7 +144,7 @@ static int get_local_address(struct in_addr *ourip)
 #if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__)
 		for (ifap = ifaphead; ifap; ifap = ifap->ifa_next) {
 
-			if (ifap->ifa_addr->sa_family == AF_INET) {
+			if (ifap->ifa_addr && ifap->ifa_addr->sa_family == AF_INET) {
 				sin = (const struct sockaddr_in *) ifap->ifa_addr;
 				score_address(sin, &best_addr, &best_score);
 				res = 0;