diff --git a/servers/slapd/back-bdb/add.c b/servers/slapd/back-bdb/add.c index 451bfaff6c..6e7ccdb9b0 100644 --- a/servers/slapd/back-bdb/add.c +++ b/servers/slapd/back-bdb/add.c @@ -298,7 +298,7 @@ retry: /* transaction retry */ * no parent! * if not attempting to add entry at suffix or with parent "" */ - if (( !be_isroot( op ) || pdn.bv_len > 0 ) + if ((( !be_isroot( op ) && !be_isupdate(op)) || pdn.bv_len > 0 ) && !is_entry_glue( op->oq_add.rs_e )) { #ifdef NEW_LOGGING diff --git a/servers/slapd/back-ldbm/add.c b/servers/slapd/back-ldbm/add.c index b9bc4bc7b2..d621eeb2a8 100644 --- a/servers/slapd/back-ldbm/add.c +++ b/servers/slapd/back-ldbm/add.c @@ -247,8 +247,8 @@ ldbm_back_add( } else { assert( pdn.bv_val == NULL || *pdn.bv_val == '\0' ); - if ( !be_isroot( op ) - && !is_entry_glue( op->oq_add.rs_e )) + if (( !be_isroot( op ) && !be_isupdate( op )) && + !is_entry_glue( op->oq_add.rs_e )) { ldap_pvt_thread_rdwr_wunlock(&li->li_giant_rwlock);