diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 1d8b257..b2e4a8a 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -1004,8 +1004,11 @@
 	test->i = l4->cli_addr.ss_family;
 	if (test->i == AF_INET)
 		test->ptr = (void *)&((struct sockaddr_in *)&l4->cli_addr)->sin_addr;
-	else
+	else if (test->i == AF_INET6)
 		test->ptr = (void *)&((struct sockaddr_in6 *)(&l4->cli_addr))->sin6_addr;
+	else
+		return 0;
+
 	test->flags = ACL_TEST_F_READ_ONLY;
 	return 1;
 }
@@ -1015,6 +1018,9 @@
 pattern_fetch_src(struct proxy *px, struct session *l4, void *l7, int dir,
                   const char *arg, int arg_len, union pattern_data *data)
 {
+	if (l4->cli_addr.ss_family != AF_INET )
+		return 0;
+
 	data->ip.s_addr = ((struct sockaddr_in *)&l4->cli_addr)->sin_addr.s_addr;
 	return 1;
 }
@@ -1027,8 +1033,11 @@
 {
 	if (l4->cli_addr.ss_family == AF_INET)
 		test->i = ntohs(((struct sockaddr_in *)&l4->cli_addr)->sin_port);
-	else
+	else if (l4->cli_addr.ss_family == AF_INET6)
 		test->i = ntohs(((struct sockaddr_in6 *)(&l4->cli_addr))->sin6_port);
+	else
+		return 0;
+
 	test->flags = 0;
 	return 1;
 }
@@ -1045,8 +1054,11 @@
 	test->i = l4->frt_addr.ss_family;
 	if (test->i == AF_INET)
 		test->ptr = (void *)&((struct sockaddr_in *)&l4->frt_addr)->sin_addr;
-	else
+	else if (test->i == AF_INET6)
 		test->ptr = (void *)&((struct sockaddr_in6 *)(&l4->frt_addr))->sin6_addr;
+	else
+		return 0;
+
 	test->flags = ACL_TEST_F_READ_ONLY;
 	return 1;
 }
@@ -1060,6 +1072,9 @@
 	if (!(l4->flags & SN_FRT_ADDR_SET))
 		get_frt_addr(l4);
 
+	if (l4->frt_addr.ss_family != AF_INET)
+		return 0;
+
 	data->ip.s_addr = ((struct sockaddr_in *)&l4->frt_addr)->sin_addr.s_addr;
 	return 1;
 }
@@ -1074,8 +1089,11 @@
 
 	if (l4->frt_addr.ss_family == AF_INET)
 		test->i = ntohs(((struct sockaddr_in *)&l4->frt_addr)->sin_port);
-	else
+	else if (l4->frt_addr.ss_family == AF_INET6)
 		test->i = ntohs(((struct sockaddr_in6 *)(&l4->frt_addr))->sin6_port);
+	else
+		return 0;
+
 	test->flags = 0;
 	return 1;
 }
@@ -1088,6 +1106,9 @@
 	if (!(l4->flags & SN_FRT_ADDR_SET))
 		get_frt_addr(l4);
 
+	if (l4->frt_addr.ss_family != AF_INET)
+		return 0;
+
 	data->integer = ntohs(((struct sockaddr_in *)&l4->frt_addr)->sin_port);
 	return 1;
 }
