diff -Naur openldap-2.4.7.orig/servers/slapd/back-bdb/modify.c openldap-2.4.7/servers/slapd/back-bdb/modify.c --- openldap-2.4.7.orig/servers/slapd/back-bdb/modify.c 2007-12-10 12:54:46.000000000 -0500 +++ openldap-2.4.7/servers/slapd/back-bdb/modify.c 2008-04-25 10:13:52.000000000 -0400 @@ -283,7 +283,7 @@ /* attribute was completely deleted */ vals = ap->a_nvals; } - if ( !BER_BVISEMPTY( vals )) { + if ( !BER_BVISNULL( vals )) { rc = bdb_index_values( op, tid, ap->a_desc, vals, e->e_id, SLAP_INDEX_DELETE_OP ); if ( rc != LDAP_SUCCESS ) { diff -Naur openldap-2.4.7.orig/servers/slapd/modify.c openldap-2.4.7/servers/slapd/modify.c --- openldap-2.4.7.orig/servers/slapd/modify.c 2007-09-29 05:55:21.000000000 -0400 +++ openldap-2.4.7/servers/slapd/modify.c 2008-04-25 10:13:52.000000000 -0400 @@ -585,6 +585,7 @@ ml->sml_values[nvals] = pval; } } + ml->sml_values[nvals].bv_len = 0; ml->sml_numvals = nvals; /*