diff --git a/CHANGES b/CHANGES
index f6e4120a126fef22f70b806943b7fccd0b154194..15d4896d1c5410524b23620192155ee43c5dba3b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,7 @@ OpenLDAP 2.4.22 Engineering
 	Fixed slapo-dynlist REP_ENTRY flag handling (ITS#5340,ITS#6423)
 	Fixed slapo-rwm olcRwmMap handling (ITS#6436)
 	Fixed slapo-rwm REP_ENTRY flag handling (ITS#5340,ITS#6423)
+	Fixed slapo-syncprov memory leak (ITS#6459)
 	Fixed slapo-valsort REP_ENTRY flag handling (ITS#5340,ITS#6423)
 
 OpenLDAP 2.4.21 Release (2009/12/20)
diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c
index d3584a22384fcae33f8d79a84c622b826fb43313..4ee8a23abcb2659c304c3fa5f0fda151079a3b2c 100644
--- a/servers/slapd/overlays/syncprov.c
+++ b/servers/slapd/overlays/syncprov.c
@@ -931,9 +931,9 @@ syncprov_qplay( Operation *op, syncops *so )
 		ldap_pvt_thread_mutex_unlock( &so->s_mutex );
 
 		if ( sr->s_mode == LDAP_SYNC_NEW_COOKIE ) {
-		    SlapReply rs = { REP_INTERMEDIATE };
+			SlapReply rs = { REP_INTERMEDIATE };
 
-		    rc = syncprov_sendinfo( op, &rs, LDAP_TAG_SYNC_NEW_COOKIE,
+			rc = syncprov_sendinfo( op, &rs, LDAP_TAG_SYNC_NEW_COOKIE,
 				&sr->s_csn, 0, NULL, 0 );
 		} else {
 			opc.sdn = sr->s_dn;
@@ -945,11 +945,11 @@ syncprov_qplay( Operation *op, syncops *so )
 
 			rc = syncprov_sendresp( op, &opc, so, sr->s_mode );
 
-			if ( opc.se ) {
-				if ( !dec_mutexint( opc.se->e_private )) {
-					opc.se->e_private = NULL;
-					entry_free ( opc.se );
-				}
+		}
+		if ( sr->s_e ) {
+			if ( !dec_mutexint( sr->s_e->e_private )) {
+				sr->s_e->e_private = NULL;
+				entry_free ( sr->s_e );
 			}
 		}