diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c
index 9ea7b55a793c8d3ba0f57b2ade4c795384ce590d..ca9326837ee1923d81b74768f21a113a65c0d29b 100644
--- a/servers/slapd/syncrepl.c
+++ b/servers/slapd/syncrepl.c
@@ -1548,7 +1548,8 @@ done:
 
 	if ( msg ) ldap_msgfree( msg );
 
-	if ( rc && rc != LDAP_SYNC_REFRESH_REQUIRED && si->si_ld ) {
+	if ( rc ) {
+		/* never reuse existing connection */
 		if ( si->si_conn ) {
 			connection_client_stop( si->si_conn );
 			si->si_conn = NULL;
@@ -1661,6 +1662,7 @@ do_syncrepl(
 	if ( !si->si_schemachecking )
 		op->o_no_schema_check = 1;
 
+reload:
 	/* Establish session, do search */
 	if ( !si->si_ld ) {
 		si->si_refreshDelete = 0;
@@ -1678,7 +1680,6 @@ do_syncrepl(
 		rc = do_syncrep1( op, si );
 	}
 
-reload:
 	/* Process results */
 	if ( rc == LDAP_SUCCESS ) {
 		ldap_get_option( si->si_ld, LDAP_OPT_DESC, &s );
@@ -1689,11 +1690,6 @@ reload:
 		op->o_ndn = op->o_bd->be_rootndn;
 		rc = do_syncrep2( op, si );
 		if ( rc == LDAP_SYNC_REFRESH_REQUIRED )	{
-			if ( BER_BVISNULL( &si->si_syncCookie.octet_str ))
-				slap_compose_sync_cookie( NULL, &si->si_syncCookie.octet_str,
-					si->si_syncCookie.ctxcsn, si->si_syncCookie.rid,
-					si->si_syncCookie.sid );
-			rc = ldap_sync_search( si, op->o_tmpmemctx );
 			goto reload;
 		}