diff --git a/include/haproxy/server-t.h b/include/haproxy/server-t.h
index 48ed176..53938c0 100644
--- a/include/haproxy/server-t.h
+++ b/include/haproxy/server-t.h
@@ -232,6 +232,7 @@
 	unsigned int curr_safe_nb;              /* Current number of connections in the safe list */
 	unsigned int curr_used_conns;           /* Current number of used connections */
 	unsigned int max_used_conns;            /* Max number of used connections (the counter is reset at each connection purges */
+	unsigned int est_need_conns;            /* Estimate on the number of needed connections (max of curr and previous max_used) */
 	unsigned int *curr_idle_thr;            /* Current number of orphan idling connections per thread */
 	int max_reuse;                          /* Max number of requests on a same connection */
 	struct eb32_node idle_node;             /* When to next do cleanup in the idle connections */
diff --git a/include/haproxy/server.h b/include/haproxy/server.h
index 9c1672a..4d025ad 100644
--- a/include/haproxy/server.h
+++ b/include/haproxy/server.h
@@ -244,9 +244,16 @@
  */
 static inline int srv_add_to_idle_list(struct server *srv, struct connection *conn, int is_safe)
 {
+	/* we try to keep the connection in the server's idle list
+	 * if we don't have too many FD in use, and if the number of
+	 * idle+current conns is lower than what was observed before
+	 * last purge, or if we already don't have idle conns for the
+	 * current thread and we don't exceed last count by global.nbthread.
+	 */
 	if (srv && srv->pool_purge_delay > 0 &&
 	    (srv->max_idle_conns == -1 || srv->max_idle_conns > srv->curr_idle_conns) &&
-	    (srv->cur_sess + srv->curr_idle_conns <= srv->counters.cur_sess_max) &&
+	    (srv->curr_used_conns + srv->curr_idle_conns < MAX(srv->curr_used_conns, srv->est_need_conns) +
+	     (MT_LIST_ISEMPTY(&srv->safe_conns[tid]) && MT_LIST_ISEMPTY(&srv->idle_conns[tid])) ? global.nbthread : 0) &&
 	    !(conn->flags & CO_FL_PRIVATE) &&
 	    ((srv->proxy->options & PR_O_REUSE_MASK) != PR_O_REUSE_NEVR) &&
 	    !conn->mux->used_streams(conn) && conn->mux->avail_streams(conn) &&
diff --git a/src/backend.c b/src/backend.c
index a3ec782..f87e36e 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1355,6 +1355,9 @@
 		 */
 		if (srv->max_used_conns < srv->curr_used_conns)
 			srv->max_used_conns = srv->curr_used_conns;
+
+		if (srv->est_need_conns < srv->curr_used_conns)
+			srv->est_need_conns = srv->curr_used_conns;
 	}
 	if (!srv_conn || !sockaddr_alloc(&srv_conn->dst)) {
 		if (srv_conn)
diff --git a/src/server.c b/src/server.c
index 8cc5bbf..258a627 100644
--- a/src/server.c
+++ b/src/server.c
@@ -5254,9 +5254,13 @@
 		curr_idle = srv->curr_idle_conns;
 		if (curr_idle == 0)
 			goto remove;
-		exceed_conns = srv->curr_used_conns + curr_idle -
-		               srv->max_used_conns;
+		exceed_conns = srv->curr_used_conns + curr_idle - MAX(srv->max_used_conns, srv->est_need_conns);
 		exceed_conns = to_kill = exceed_conns / 2 + (exceed_conns & 1);
+
+		srv->est_need_conns = (srv->est_need_conns + srv->max_used_conns + 1) / 2;
+		if (srv->est_need_conns < srv->max_used_conns)
+			srv->est_need_conns = srv->max_used_conns;
+
 		srv->max_used_conns = srv->curr_used_conns;
 
 		/* check all threads starting with ours */
