diff --git a/src/cfgparse.c b/src/cfgparse.c
index 9752b81..759d407 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -72,8 +72,6 @@
 #include <proto/listener.h>
 #include <proto/log.h>
 #include <proto/protocol.h>
-#include <proto/proto_tcp.h>
-#include <proto/proto_uxst.h>
 #include <proto/proto_http.h>
 #include <proto/proxy.h>
 #include <proto/peers.h>
@@ -288,6 +286,13 @@
 		memcpy(&ss, ss2, sizeof(ss));
 
 		for (; port <= end; port++) {
+			struct protocol *proto = protocol_by_family(ss.ss_family);
+
+			if (!proto) {
+				memprintf(err, "unsupported protocol family %d for address '%s'.\n", ss.ss_family, str);
+				goto fail;
+			}
+
 			l = calloc(1, sizeof(*l));
 			l->obj_type = OBJ_TYPE_LISTENER;
 			LIST_ADDQ(&curproxy->conf.listeners, &l->by_fe);
@@ -298,15 +303,7 @@
 			memcpy(&l->addr, &ss, sizeof(ss));
 			l->state = LI_INIT;
 
-			if (ss.ss_family == AF_INET) {
-				tcpv4_add_listener(l, port);
-			}
-			else if (ss.ss_family == AF_INET6) {
-				tcpv6_add_listener(l, port);
-			}
-			else {
-				uxst_add_listener(l, port);
-			}
+			proto->add(l, port);
 
 			jobs++;
 			listeners++;
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 6b1505a..0fad867 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -63,6 +63,8 @@
 
 static int tcp_bind_listeners(struct protocol *proto, char *errmsg, int errlen);
 static int tcp_bind_listener(struct listener *listener, char *errmsg, int errlen);
+static void tcpv4_add_listener(struct listener *listener, int port);
+static void tcpv6_add_listener(struct listener *listener, int port);
 
 /* Note: must not be declared <const> as its list will be overwritten */
 static struct protocol proto_tcpv4 = {
@@ -83,6 +85,7 @@
 	.get_dst = tcp_get_dst,
 	.drain = tcp_drain,
 	.pause = tcp_pause_listener,
+	.add = tcpv4_add_listener,
 	.listeners = LIST_HEAD_INIT(proto_tcpv4.listeners),
 	.nb_listeners = 0,
 };
@@ -106,6 +109,7 @@
 	.get_dst = tcp_get_dst,
 	.drain = tcp_drain,
 	.pause = tcp_pause_listener,
+	.add = tcpv6_add_listener,
 	.listeners = LIST_HEAD_INIT(proto_tcpv6.listeners),
 	.nb_listeners = 0,
 };
@@ -1141,7 +1145,7 @@
  * listener's state is automatically updated from LI_INIT to LI_ASSIGNED.
  * The number of listeners for the protocol is updated.
  */
-void tcpv4_add_listener(struct listener *listener, int port)
+static void tcpv4_add_listener(struct listener *listener, int port)
 {
 	if (listener->state != LI_INIT)
 		return;
@@ -1156,7 +1160,7 @@
  * listener's state is automatically updated from LI_INIT to LI_ASSIGNED.
  * The number of listeners for the protocol is updated.
  */
-void tcpv6_add_listener(struct listener *listener, int port)
+static void tcpv6_add_listener(struct listener *listener, int port)
 {
 	if (listener->state != LI_INIT)
 		return;
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index 767cd16..ae6e338 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -49,6 +49,7 @@
 static int uxst_bind_listeners(struct protocol *proto, char *errmsg, int errlen);
 static int uxst_unbind_listeners(struct protocol *proto);
 static int uxst_connect_server(struct connection *conn, int data, int delack);
+static void uxst_add_listener(struct listener *listener, int port);
 
 /* Note: must not be declared <const> as its list will be overwritten */
 static struct protocol proto_unix = {
@@ -69,6 +70,7 @@
 	.get_src = uxst_get_src,
 	.get_dst = uxst_get_dst,
 	.pause = uxst_pause_listener,
+	.add = uxst_add_listener,
 	.listeners = LIST_HEAD_INIT(proto_unix.listeners),
 	.nb_listeners = 0,
 };
@@ -369,7 +371,7 @@
  * listener's state is automatically updated from LI_INIT to LI_ASSIGNED.
  * The number of listeners for the protocol is updated.
  */
-void uxst_add_listener(struct listener *listener, int port)
+static void uxst_add_listener(struct listener *listener, int port)
 {
 	if (listener->state != LI_INIT)
 		return;
