diff --git a/src/proxy.c b/src/proxy.c
index 0b19099..210106d 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -1806,14 +1806,14 @@
 			             "%d %d %d %d %ld "
 			             "%d %d %d %d %d "
 			             "%d %d %s %u "
-				     "%s %d"
+				     "%s %d %d"
 			             "\n",
 			             px->uuid, px->id,
 			             srv->puid, srv->id, srv_addr,
 			             srv->cur_state, srv->cur_admin, srv->uweight, srv->iweight, (long int)srv_time_since_last_change,
 			             srv->check.status, srv->check.result, srv->check.health, srv->check.state, srv->agent.state,
 			             bk_f_forced_id, srv_f_forced_id, srv->hostname ? srv->hostname : "-", srv->svc_port,
-			             srvrecord ? srvrecord : "-", srv->use_ssl);
+			             srvrecord ? srvrecord : "-", srv->use_ssl, srv->check.port);
 		} else {
 			/* show servers conn */
 			int thr;
diff --git a/src/server.c b/src/server.c
index 76bd49f..8019dd1 100644
--- a/src/server.c
+++ b/src/server.c
@@ -2613,15 +2613,17 @@
 	int srv_f_forced_id;
 	int fqdn_set_by_cli;
 	const char *fqdn;
-	const char *port_str;
-	unsigned int port;
+	const char *port_svc_st;
+	const char *port_check_st;
+	unsigned int port_svc;
+	unsigned int port_check;
 	char *srvrecord;
 #ifdef USE_OPENSSL
 	int use_ssl;
 #endif
 
 	fqdn = NULL;
-	port = 0;
+	port_svc = port_check = 0;
 	msg = get_trash_chunk();
 	switch (version) {
 		case 1:
@@ -2644,6 +2646,7 @@
 			 * srv_port:             params[14]
 			 * srvrecord:            params[15]
 			 * srv_use_ssl:          params[16]
+			 * srv_check_port:       params[17]
 			 */
 
 			/* validating srv_op_state */
@@ -2767,14 +2770,22 @@
 				fqdn = NULL;
 			}
 
-			port_str = params[14];
-			if (port_str) {
-				port = strl2uic(port_str, strlen(port_str));
-				if (port > USHRT_MAX) {
-					chunk_appendf(msg, ", invalid srv_port value '%s'", port_str);
-					port_str = NULL;
+			port_svc_st = params[14];
+			if (port_svc_st) {
+				port_svc = strl2uic(port_svc_st, strlen(port_svc_st));
+				if (port_svc > USHRT_MAX) {
+					chunk_appendf(msg, ", invalid srv_port value '%s'", port_svc_st);
+					port_svc_st = NULL;
 				}
 			}
+			port_check_st = params[17];
+			if (port_check_st) {
+				port_check = strl2uic(port_check_st, strlen(port_check_st));
+				if (port_check > USHRT_MAX) {
+					chunk_appendf(msg, ", invalid srv_port value '%s'", port_check_st);
+					port_check_st = NULL;
+				}
+			}
 
 			/* SRV record
 			 * NOTE: in HAProxy, SRV records must start with an underscore '_'
@@ -2979,8 +2990,11 @@
 				srv->flags &= ~SRV_F_MAPPORTS;
 			}
 
-			if (port_str)
-				srv->svc_port = port;
+			if (port_svc_st)
+				srv->svc_port = port_svc;
+
+			if (!srv->check.port)
+				srv->check.port = port_check;
 
 #ifdef USE_OPENSSL
 			/* configure ssl if connection has been initiated at startup */
