diff --git a/src/dns.c b/src/dns.c
index f040668..18224d5 100644
--- a/src/dns.c
+++ b/src/dns.c
@@ -519,7 +519,7 @@
 					if (srv->srvrq == srvrq && srv->svc_port == item->port &&
 					    item->data_len == srv->hostname_dn_len &&
 					    !dns_hostname_cmp(srv->hostname_dn, item->target, item->data_len)) {
-						dns_unlink_resolution(srv->dns_requester);
+						dns_unlink_resolution(srv->dns_requester, 0);
 						srvrq_update_srv_status(srv, 1);
 						free(srv->hostname);
 						free(srv->hostname_dn);
@@ -1489,8 +1489,9 @@
 
 /* Removes a requester from a DNS resoltion. It takes takes care of all the
  * consequences. It also cleans up some parameters from the requester.
+ * if <safe> is set to 1, the corresponding resolution is not released.
  */
-void dns_unlink_resolution(struct dns_requester *requester)
+void dns_unlink_resolution(struct dns_requester *requester, int safe)
 {
 	struct dns_resolution *res;
 	struct dns_requester  *req;
@@ -1508,6 +1509,15 @@
 	if (!LIST_ISEMPTY(&res->requesters))
 		req = LIST_NEXT(&res->requesters, struct dns_requester *, list);
 	else {
+		if (safe) {
+			/* Don't release it yet. */
+			dns_reset_resolution(res);
+			res->hostname_dn = NULL;
+			res->hostname_dn_len = 0;
+			dns_purge_resolution_answer_records(res);
+			return;
+		}
+
 		dns_free_resolution(res);
 		return;
 	}
@@ -1808,6 +1818,11 @@
 
 	/* Handle all expired resolutions from the active list */
 	list_for_each_entry_safe(res, resback, &resolvers->resolutions.curr, list) {
+		if (LIST_ISEMPTY(&res->requesters)) {
+			dns_free_resolution(res);
+			continue;
+		}
+
 		/* When we find the first resolution in the future, then we can
 		 * stop here */
 		exp = tick_add(res->last_query, resolvers->timeout.retry);
@@ -1856,6 +1871,11 @@
 
 	/* Handle all resolutions in the wait list */
 	list_for_each_entry_safe(res, resback, &resolvers->resolutions.wait, list) {
+		if (LIST_ISEMPTY(&res->requesters)) {
+			dns_free_resolution(res);
+			continue;
+		}
+
 		exp = tick_add(res->last_resolution, dns_resolution_timeout(res));
 		if (tick_isset(res->last_resolution) && !tick_is_expired(exp, now_ms))
 			continue;
@@ -2285,7 +2305,7 @@
 	s->dns_ctx.hostname_dn = NULL;
 	s->dns_ctx.hostname_dn_len = 0;
 	if (s->dns_ctx.dns_requester) {
-		dns_unlink_resolution(s->dns_ctx.dns_requester);
+		dns_unlink_resolution(s->dns_ctx.dns_requester, 0);
 		pool_free(dns_requester_pool, s->dns_ctx.dns_requester);
 		s->dns_ctx.dns_requester = NULL;
 	}
diff --git a/src/server.c b/src/server.c
index aa8e1c8..a86a280 100644
--- a/src/server.c
+++ b/src/server.c
@@ -4082,7 +4082,7 @@
 	for (s = srvrq->proxy->srv; s != NULL; s = s->next) {
 		HA_SPIN_LOCK(SERVER_LOCK, &s->lock);
 		if (s->srvrq == srvrq) {
-			dns_unlink_resolution(s->dns_requester);
+			dns_unlink_resolution(s->dns_requester, 1);
 			srvrq_update_srv_status(s, 1);
 			free(s->hostname);
 			free(s->hostname_dn);
@@ -4237,7 +4237,7 @@
 	    strcasecmp(resolution->hostname_dn, hostname_dn) == 0)
 		goto end;
 
-	dns_unlink_resolution(srv->dns_requester);
+	dns_unlink_resolution(srv->dns_requester, 0);
 
 	free(srv->hostname);
 	free(srv->hostname_dn);
diff --git a/src/stream.c b/src/stream.c
index 21c4f12..852ef75 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -440,7 +440,7 @@
 		HA_SPIN_LOCK(DNS_LOCK, &resolvers->lock);
 		free(s->dns_ctx.hostname_dn); s->dns_ctx.hostname_dn = NULL;
 		s->dns_ctx.hostname_dn_len = 0;
-		dns_unlink_resolution(s->dns_ctx.dns_requester);
+		dns_unlink_resolution(s->dns_ctx.dns_requester, 0);
 		HA_SPIN_UNLOCK(DNS_LOCK, &resolvers->lock);
 
 		pool_free(dns_requester_pool, s->dns_ctx.dns_requester);
