diff --git a/src/checks.c b/src/checks.c
index fb4c962..58bc88d 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -3364,7 +3364,7 @@
 		struct tcpcheck_var *var;
 
 		/* First evaluation, create a session */
-		check->sess = session_new(&checks_fe, NULL, (check->server ? &check->server->obj_type : NULL));
+		check->sess = session_new(&checks_fe, NULL, &check->obj_type);
 		if (!check->sess) {
 			chunk_printf(&trash, "TCPCHK error allocating check session");
 			set_server_check_status(check, HCHK_STATUS_SOCKERR, trash.area);
@@ -4457,13 +4457,13 @@
 {
 	unsigned int buf_offset = ((arg_p[0].type == ARGT_SINT) ? arg_p[0].data.sint : 0);
 	unsigned int buf_size = ((arg_p[1].type == ARGT_SINT) ? arg_p[1].data.sint : 0);
-	struct server *srv = (smp->sess ? objt_server(smp->sess->origin) : NULL);
+	struct check *check = (smp->sess ? objt_check(smp->sess->origin) : NULL);
 	struct buffer *buf;
 
-	if (!srv || !srv->do_check)
+	if (!check)
 		return 0;
 
-	buf = &srv->check.bi;
+	buf = &check->bi;
 	if (buf_offset > b_data(buf))
 		goto no_match;
 	if (buf_offset + buf_size > b_data(buf))
diff --git a/src/vars.c b/src/vars.c
index 0fa3397..a6807fa 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -49,9 +49,9 @@
 	case SCOPE_SESS:
 		return &sess->vars;
 	case SCOPE_CHECK: {
-			struct server *srv = objt_server(sess->origin);
+			struct check *check = objt_check(sess->origin);
 
-			return srv ? &srv->check.vars : NULL;
+			return check ? &check->vars : NULL;
 		}
 	case SCOPE_TXN:
 		return strm ? &strm->vars_txn : NULL;
@@ -78,10 +78,10 @@
 			_HA_ATOMIC_ADD(&strm->vars_txn.size, size);
 		goto scope_sess;
 	case SCOPE_CHECK: {
-			struct server *srv = objt_server(sess->origin);
+			struct check *check = objt_check(sess->origin);
 
-			if (srv != NULL)
-				_HA_ATOMIC_ADD(&srv->check.vars.size, size);
+			if (check)
+				_HA_ATOMIC_ADD(&check->vars.size, size);
 		}
 		/* fall through */
 scope_sess:
@@ -114,10 +114,9 @@
 			return 0;
 		goto scope_sess;
 	case SCOPE_CHECK: {
-			struct server *srv = objt_server(sess->origin);
+			struct check *check = objt_check(sess->origin);
 
-			if (var_check_limit && srv &&
-			    srv->check.vars.size + size > var_check_limit)
+			if (var_check_limit && check && check->vars.size + size > var_check_limit)
 				return 0;
 		}
 		/* fall through */
