diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c
index 6e7548b857193271c0613c0bed317a73f0cc42a1..91db53389511d0ef8d41e0d732492876d2bae137 100644
--- a/servers/slapd/back-bdb/search.c
+++ b/servers/slapd/back-bdb/search.c
@@ -794,6 +794,7 @@ loop_continue:
 
 		ldap_pvt_thread_yield();
 	}
+
 #ifdef LDAP_CLIENT_UPDATE
 	if ( op->o_clientupdate_type & SLAP_LCUP_SYNC ) {
 		int ret;
@@ -866,12 +867,14 @@ done:
 	}
 
 #ifdef LDAP_CLIENT_UDATE
-	if ( csnfeq.f_ava != NULL && csnfeq.f_av_value.bv_val != NULL ) {
-		ch_free( csnfeq.f_av_value.bv_val );
-	}
+	if ( op->o_clientupdate_type & SLAP_LCUP_SYNC ) {
+		if ( csnfeq.f_ava != NULL && csnfeq.f_av_value.bv_val != NULL ) {
+			ch_free( csnfeq.f_av_value.bv_val );
+		}
 	
-	if ( csnfge.f_ava != NULL && csnfge.f_av_value.bv_val != NULL ) {
-		ch_free( csnfge.f_av_value.bv_val );
+		if ( csnfge.f_ava != NULL && csnfge.f_av_value.bv_val != NULL ) {
+			ch_free( csnfge.f_av_value.bv_val );
+		}
 	}
 #endif /* LDAP_CLIENT_UPDATE */