diff --git a/src/peers.c b/src/peers.c
index b196d88..159f0a4 100644
--- a/src/peers.c
+++ b/src/peers.c
@@ -1063,6 +1063,7 @@
 {
 	struct stream_interface *oldsi = NULL;
 	struct appctx *appctx = NULL;
+	struct peer_session *ps;
 	int i;
 
 	for (i = 0; i <= 1; i++) {
@@ -1079,6 +1080,14 @@
 	if (!appctx)
 		return;
 
+	ps = (struct peer_session *)appctx->ctx.peers.ptr;
+	/* we're killing a connection, we must apply a random delay before
+	 * retrying otherwise the other end will do the same and we can loop
+	 * for a while.
+	 */
+	if (ps)
+		ps->reconnect = tick_add(now_ms, MS_TO_TICKS(50 + random() % 2000));
+
 	/* call release to reinit resync states if needed */
 	peer_session_release(oldsi);
 	appctx->st0 = PEER_SESS_ST_END;
@@ -1352,8 +1361,8 @@
 				if (!ps->session) {
 					/* no active session */
 					if (ps->statuscode == 0 ||
-					    ps->statuscode == PEER_SESS_SC_SUCCESSCODE ||
 					    ((ps->statuscode == PEER_SESS_SC_CONNECTCODE ||
+					      ps->statuscode == PEER_SESS_SC_SUCCESSCODE ||
 					      ps->statuscode == PEER_SESS_SC_CONNECTEDCODE) &&
 					     tick_is_expired(ps->reconnect, now_ms))) {
 						/* connection never tried
@@ -1364,8 +1373,7 @@
 						/* retry a connect */
 						ps->session = peer_session_create(ps->peer, ps);
 					}
-					else if (ps->statuscode == PEER_SESS_SC_CONNECTCODE ||
-						 ps->statuscode == PEER_SESS_SC_CONNECTEDCODE) {
+					else if (!tick_is_expired(ps->reconnect, now_ms)) {
 						/* If previous session failed during connection
 						 * but reconnection timer is not expired */
 
