diff --git a/acl.c b/acl.c
index b2c619f8bb0be8bf73e51f36ddceb75f639f93a8..f4daaab2a1743c16c34fe340b20513cdbf1250de 100755
--- a/acl.c
+++ b/acl.c
@@ -259,11 +259,13 @@ int ast_ouraddrfor(struct in_addr *them, struct in_addr *us)
 	sin.sin_addr = *them;
 	if (connect(s, (struct sockaddr *)&sin, sizeof(sin))) {
 		ast_log(LOG_WARNING, "Cannot connect\n");
+		close(s);
 		return -1;
 	}
 	slen = sizeof(sin);
 	if (getsockname(s, (struct sockaddr *)&sin, &slen)) {
 		ast_log(LOG_WARNING, "Cannot get socket name\n");
+		close(s);
 		return -1;
 	}
 	close(s);