diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 24f49d8bf44fe3345cd2e4f39d0554e8f21d05d3..fab2752c7849f6f437328ac24adf48f4f5afcc03 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -12270,7 +12270,7 @@ static int check_srcaddr(struct ast_sockaddr *addr)
 {
 	int sd;
 
-	sd = socket(ast_sockaddr_is_ipv4(addr) ? AF_INET : AF_INET6, SOCK_DGRAM, 0);
+	sd = socket(addr->ss.ss_family, SOCK_DGRAM, 0);
 	if (sd < 0) {
 		ast_log(LOG_ERROR, "Socket: %s\n", strerror(errno));
 		return -1;
@@ -12302,8 +12302,7 @@ static int peer_set_srcaddr(struct iax2_peer *peer, const char *srcaddr)
 	if (!(tmp = ast_strdupa(srcaddr)))
 		return -1;
 
-	host = strsep(&tmp, ":");
-	portstr = tmp;
+	ast_sockaddr_split_hostport(tmp, &host, &portstr, 0);
 
 	if (portstr) {
 		port = atoi(portstr);
diff --git a/main/netsock.c b/main/netsock.c
index 334617da6b0d4e5f2ae958d2e89756138e6d562d..994afc6015c586be7687a6771ae3b37a3de93d56 100644
--- a/main/netsock.c
+++ b/main/netsock.c
@@ -167,6 +167,11 @@ struct ast_netsock *ast_netsock_bind(struct ast_netsock_list *list, struct io_co
 	struct ast_sockaddr addr;
 
 	if (ast_sockaddr_parse(&addr, bindinfo, 0)) {
+		if (!ast_sockaddr_is_ipv4(&addr)) {
+			ast_log(LOG_WARNING, "Only IPv4 addresses are supported at this time.\n");
+			return NULL;
+		}
+
 		if (!ast_sockaddr_port(&addr)) {
 			ast_sockaddr_set_port(&addr, defaultport);
 		}