--- openldap-2.3.27/servers/slapd/overlays/accesslog.c.orig	2006-08-14 22:20:54.000000000 -0700
+++ openldap-2.3.27/servers/slapd/overlays/accesslog.c	2006-08-20 19:48:16.000000000 -0700
@@ -626,7 +626,7 @@
 		case LOG_OLD:
 			if ( li->li_oldf ) {
 				filter2bv( li->li_oldf, &agebv );
-				value_add_one( &c->rvalue_vals, &agebv );
+				ber_bvarray_add( &c->rvalue_vals, &agebv );
 			}
 			else
 				rc = 1;
@@ -1318,6 +1318,8 @@
 	slap_overinst *on = (slap_overinst *)be->bd_info;
 	log_info *li = on->on_bi.bi_private;
 
+	if ( li->li_oldf )
+		filter_free( li->li_oldf );
 	ldap_pvt_thread_mutex_destroy( &li->li_log_mutex );
 	ldap_pvt_thread_mutex_destroy( &li->li_op_mutex );
 	free( li );
--- openldap-2.3.27/servers/slapd/back-bdb/cache.c.orig	2006-08-26 14:12:14.000000000 -0700
+++ openldap-2.3.27/servers/slapd/back-bdb/cache.c	2006-08-26 14:12:45.000000000 -0700
@@ -707,6 +707,7 @@
 				&ep->e_nname, eip );
 			if ( *eip ) islocked = 1;
 			if ( rc ) {
+				ep->e_private = NULL;
 #ifdef SLAP_ZONE_ALLOC
 				bdb_entry_return( bdb, ep, (*eip)->bei_zseq );
 #else
@@ -811,6 +812,7 @@
 		bdb_cache_entryinfo_unlock( *eip );
 	}
 	if ( ep ) {
+		ep->e_private = NULL;
 #ifdef SLAP_ZONE_ALLOC
 		bdb_entry_return( bdb, ep, (*eip)->bei_zseq );
 #else
