diff --git a/src/backend.c b/src/backend.c
index 2fc7a3f..b60e900 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1251,7 +1251,7 @@
 			_HA_ATOMIC_SUB(&srv->curr_idle_conns, 1);
 			__ha_barrier_atomic_store();
 			srv->curr_idle_thr[tid]--;
-			LIST_ADDQ(&srv->available_conns[tid], &srv_conn->list);
+			LIST_ADDQ(&srv->available_conns[tid], mt_list_to_list(&srv_conn->list));
 		}
 		else {
 			if (srv_conn->flags & CO_FL_SESS_IDLE) {
@@ -1269,8 +1269,7 @@
 
 			if (avail <= 1) {
 				/* No more streams available, remove it from the list */
-				LIST_DEL(&srv_conn->list);
-				LIST_INIT(&srv_conn->list);
+				MT_LIST_DEL(&srv_conn->list);
 			}
 
 			if (avail >= 1) {
@@ -1404,7 +1403,7 @@
 		 */
 		if (srv && ((s->be->options & PR_O_REUSE_MASK) == PR_O_REUSE_ALWS) &&
 		    srv_conn->mux->avail_streams(srv_conn) > 0)
-			LIST_ADD(&srv->available_conns[tid], &srv_conn->list);
+			LIST_ADDQ(&srv->available_conns[tid], mt_list_to_list(&srv_conn->list));
 	}
 	/* The CO_FL_SEND_PROXY flag may have been set by the connect method,
 	 * if so, add our handshake pseudo-XPRT now.
diff --git a/src/connection.c b/src/connection.c
index 55b7031..45d81d8 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -55,7 +55,7 @@
 		srv = objt_server(conn->target);
 		if (srv && ((srv->proxy->options & PR_O_REUSE_MASK) != PR_O_REUSE_NEVR) &&
 		    conn->mux->avail_streams(conn) > 0)
-			LIST_ADD(&srv->available_conns[tid], &conn->list);
+			LIST_ADDQ(&srv->available_conns[tid], mt_list_to_list(&conn->list));
 		return 0;
 fail:
 		/* let the upper layer know the connection failed */
diff --git a/src/mux_fcgi.c b/src/mux_fcgi.c
index 3082d4b..904ce85 100644
--- a/src/mux_fcgi.c
+++ b/src/mux_fcgi.c
@@ -3507,9 +3507,9 @@
 				TRACE_DEVEL("reusable idle connection", FCGI_EV_STRM_END, fconn->conn);
 				return;
 			}
-		} else if (LIST_ISEMPTY(&fconn->conn->list) &&
+		} else if (MT_LIST_ISEMPTY(&fconn->conn->list) &&
 			   fcgi_avail_streams(fconn->conn) > 0 && objt_server(fconn->conn->target)) {
-				LIST_ADD(&__objt_server(fconn->conn->target)->available_conns[tid], &fconn->conn->list);
+				LIST_ADD(&__objt_server(fconn->conn->target)->available_conns[tid], mt_list_to_list(&fconn->conn->list));
 			}
 
 	}
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 47b9068..0d42324 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -3906,9 +3906,9 @@
 					return;
 
 				}
-			} else if (LIST_ISEMPTY(&h2c->conn->list) &&
+			} else if (MT_LIST_ISEMPTY(&h2c->conn->list) &&
 			           h2_avail_streams(h2c->conn) > 0 && objt_server(h2c->conn->target)) {
-				LIST_ADD(&__objt_server(h2c->conn->target)->available_conns[tid], &h2c->conn->list);
+				LIST_ADD(&__objt_server(h2c->conn->target)->available_conns[tid], mt_list_to_list(&h2c->conn->list));
 			}
 		}
 	}
