diff --git a/src/proto_http.c b/src/proto_http.c
index f64671e..a2c0587 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -711,7 +711,7 @@
 			stream_inc_http_req_ctr(s);
 			proxy_inc_fe_req_ctr(sess->fe);
 			_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-			if (sess->listener->counters)
+			if (sess->listener && sess->listener->counters)
 				_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
 			if (!(s->flags & SF_FINST_MASK))
@@ -744,7 +744,7 @@
 			stream_inc_http_req_ctr(s);
 			proxy_inc_fe_req_ctr(sess->fe);
 			_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-			if (sess->listener->counters)
+			if (sess->listener && sess->listener->counters)
 				_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
 			if (!(s->flags & SF_FINST_MASK))
@@ -774,7 +774,7 @@
 			stream_inc_http_req_ctr(s);
 			proxy_inc_fe_req_ctr(sess->fe);
 			_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-			if (sess->listener->counters)
+			if (sess->listener && sess->listener->counters)
 				_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
 			if (!(s->flags & SF_FINST_MASK))
@@ -1172,7 +1172,7 @@
 	http_reply_and_close(s, txn->status, http_error_message(s));
 
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
  return_prx_cond:
@@ -1647,7 +1647,7 @@
 				_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_rewrites, 1);
 				if (sess->fe != s->be)
 					_HA_ATOMIC_ADD(&s->be->be_counters.failed_rewrites, 1);
-				if (sess->listener->counters)
+				if (sess->listener && sess->listener->counters)
 					_HA_ATOMIC_ADD(&sess->listener->counters->failed_rewrites, 1);
 			}
 
@@ -2003,7 +2003,7 @@
 				_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_rewrites, 1);
 				if (sess->fe != s->be)
 					_HA_ATOMIC_ADD(&s->be->be_counters.failed_rewrites, 1);
-				if (sess->listener->counters)
+				if (sess->listener && sess->listener->counters)
 					_HA_ATOMIC_ADD(&sess->listener->counters->failed_rewrites, 1);
 				if (objt_server(s->target))
 					_HA_ATOMIC_ADD(&objt_server(s->target)->counters.failed_rewrites, 1);
@@ -2750,7 +2750,7 @@
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_req, 1);
 	if (sess->fe != s->be)
 		_HA_ATOMIC_ADD(&s->be->be_counters.denied_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->denied_req, 1);
 	goto done_without_exp;
 
@@ -2769,7 +2769,7 @@
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_req, 1);
 	if (sess->fe != s->be)
 		_HA_ATOMIC_ADD(&s->be->be_counters.denied_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->denied_req, 1);
 	goto return_prx_cond;
 
@@ -2788,7 +2788,7 @@
 	http_reply_and_close(s, txn->status, http_error_message(s));
 
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
  return_prx_cond:
@@ -3136,7 +3136,7 @@
 	http_reply_and_close(s, txn->status, http_error_message(s));
 
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
 	if (!(s->flags & SF_ERR_MASK))
@@ -3330,7 +3330,7 @@
  return_err_msg:
 	req->analysers &= AN_REQ_FLT_END;
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 	return 0;
 }
@@ -4182,7 +4182,7 @@
 
   return_bad_req: /* let's centralize all bad requests */
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 	if (!(s->flags & SF_ERR_MASK))
 		s->flags |= SF_ERR_CLICL;
@@ -4998,7 +4998,7 @@
 
 			_HA_ATOMIC_ADD(&s->be->be_counters.denied_resp, 1);
 			_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_resp, 1);
-			if (sess->listener->counters)
+			if (sess->listener && sess->listener->counters)
 				_HA_ATOMIC_ADD(&sess->listener->counters->denied_resp, 1);
 
 			goto return_srv_prx_502;
@@ -5153,7 +5153,7 @@
 
 		_HA_ATOMIC_ADD(&s->be->be_counters.denied_resp, 1);
 		_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_resp, 1);
-		if (sess->listener->counters)
+		if (sess->listener && sess->listener->counters)
 			_HA_ATOMIC_ADD(&sess->listener->counters->denied_resp, 1);
 
 		ha_alert("Blocking cacheable cookie in response from instance %s, server %s.\n",
diff --git a/src/proto_htx.c b/src/proto_htx.c
index 117d1ba..9ac9ffa 100644
--- a/src/proto_htx.c
+++ b/src/proto_htx.c
@@ -438,7 +438,7 @@
 	txn->req.msg_state = HTTP_MSG_ERROR;
 	htx_reply_and_close(s, txn->status, htx_error_message(s));
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
  return_prx_cond:
@@ -679,7 +679,7 @@
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_req, 1);
 	if (sess->fe != s->be)
 		_HA_ATOMIC_ADD(&s->be->be_counters.denied_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->denied_req, 1);
 	goto done_without_exp;
 
@@ -698,7 +698,7 @@
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_req, 1);
 	if (sess->fe != s->be)
 		_HA_ATOMIC_ADD(&s->be->be_counters.denied_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->denied_req, 1);
 	goto return_prx_cond;
 
@@ -709,7 +709,7 @@
 	htx_reply_and_close(s, txn->status, htx_error_message(s));
 
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
  return_prx_cond:
@@ -949,7 +949,7 @@
 	 * in case we previously disabled it, otherwise we might cause
 	 * the client to delay further data.
 	 */
-	if ((sess->listener->options & LI_O_NOQUICKACK) &&
+	if (sess->listener && (sess->listener->options & LI_O_NOQUICKACK) &&
 	    (htx_get_tail_type(htx) != HTX_BLK_EOM))
 		conn_set_quickack(cli_conn, 1);
 
@@ -972,7 +972,7 @@
 	htx_reply_and_close(s, txn->status, htx_error_message(s));
 
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 
 	if (!(s->flags & SF_ERR_MASK))
@@ -1125,7 +1125,7 @@
  return_err_msg:
 	req->analysers &= AN_REQ_FLT_END;
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 	return 0;
 }
@@ -1370,7 +1370,7 @@
 
   return_bad_req:
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1);
 	if (!(s->flags & SF_ERR_MASK))
 		s->flags |= SF_ERR_CLICL;
@@ -1965,7 +1965,7 @@
 
 			_HA_ATOMIC_ADD(&s->be->be_counters.denied_resp, 1);
 			_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_resp, 1);
-			if (sess->listener->counters)
+			if (sess->listener && sess->listener->counters)
 				_HA_ATOMIC_ADD(&sess->listener->counters->denied_resp, 1);
 			goto return_srv_prx_502;
 		}
@@ -2121,7 +2121,7 @@
 
 		_HA_ATOMIC_ADD(&s->be->be_counters.denied_resp, 1);
 		_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_resp, 1);
-		if (sess->listener->counters)
+		if (sess->listener && sess->listener->counters)
 			_HA_ATOMIC_ADD(&sess->listener->counters->denied_resp, 1);
 
 		ha_alert("Blocking cacheable cookie in response from instance %s, server %s.\n",
@@ -3013,7 +3013,7 @@
 					_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_rewrites, 1);
 					if (sess->fe != s->be)
 						_HA_ATOMIC_ADD(&s->be->be_counters.failed_rewrites, 1);
-					if (sess->listener->counters)
+					if (sess->listener && sess->listener->counters)
 						_HA_ATOMIC_ADD(&sess->listener->counters->failed_rewrites, 1);
 				}
 				free_trash_chunk(replace);
@@ -3352,7 +3352,7 @@
 					_HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_rewrites, 1);
 					if (sess->fe != s->be)
 						_HA_ATOMIC_ADD(&s->be->be_counters.failed_rewrites, 1);
-					if (sess->listener->counters)
+					if (sess->listener && sess->listener->counters)
 						_HA_ATOMIC_ADD(&sess->listener->counters->failed_rewrites, 1);
 					if (objt_server(s->target))
 						_HA_ATOMIC_ADD(&objt_server(s->target)->counters.failed_rewrites, 1);
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index f379fd1..5cef4e2 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -1362,7 +1362,7 @@
 	}
 
 	_HA_ATOMIC_ADD(&sess->fe->fe_counters.denied_req, 1);
-	if (sess->listener->counters)
+	if (sess->listener && sess->listener->counters)
 		_HA_ATOMIC_ADD(&sess->listener->counters->denied_req, 1);
 
 	return ACT_RET_STOP;
