diff --git a/CHANGES b/CHANGES
index b05b85f0a5978b10cb1011d9e1b6861ef3245073..3a9e211cbd84b544296217b776d2aaffaef6b08f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -11,6 +11,7 @@ OpenLDAP 2.4.24 Engineering
 	Fixed slapd-bdb entry cache delete failure (ITS#6577)
 	Fixed slapd-ndb to honor rootpw setting (ITS#6661)
 	Fixed slapd-meta anon retry with failed auth method (ITS#6643)
+	Fixed slapd-meta rebind proc (ITS#6665)
 	Fixed slapd-null back-config support (ITS#6624)
 	Fixed slapo-pcache callback freeing (ITS#6640)
 	Fixed slapo-pcache to ignore undefined attrs (ITS#6600)
diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c
index 38271b86752063dbc552b626008905aa6b0956d1..00000313cdebf76498c3a8fe185468b568bd2205 100644
--- a/servers/slapd/back-meta/search.c
+++ b/servers/slapd/back-meta/search.c
@@ -378,6 +378,7 @@ meta_search_dobind_result(
 	LDAPMessage		*res )
 {
 	metainfo_t		*mi = ( metainfo_t * )op->o_bd->be_private;
+	metatarget_t		*mt = mi->mi_targets[ candidate ];
 	metaconn_t		*mc = *mcp;
 	metasingleconn_t	*msc = &mc->mc_conns[ candidate ];
 
@@ -418,6 +419,12 @@ meta_search_dobind_result(
 			LDAP_BACK_CONN_ISANON_SET( msc );
 
 		} else {
+			if ( META_BACK_TGT_SAVECRED( mt ) &&
+				!BER_BVISNULL( &msc->msc_cred ) &&
+				!BER_BVISEMPTY( &msc->msc_cred ) )
+			{
+				ldap_set_rebind_proc( msc->msc_ld, mt->mt_rebind_f, msc );
+			}
 			LDAP_BACK_CONN_ISBOUND_SET( msc );
 		}
 		retcode = META_SEARCH_CANDIDATE;