diff --git a/servers/slapd/back-mdb/id2entry.c b/servers/slapd/back-mdb/id2entry.c
index 7ff1e8e1960b9584f15911a96c29181376c02996..981b14feaffbe671391750fe51fc80cdce2fc974 100644
--- a/servers/slapd/back-mdb/id2entry.c
+++ b/servers/slapd/back-mdb/id2entry.c
@@ -272,9 +272,11 @@ int mdb_entry_release(
 	/* slapMode : SLAP_SERVER_MODE, SLAP_TOOL_MODE,
 			SLAP_TRUNCATE_MODE, SLAP_UNDEFINED_MODE */
  
+	int release = 1;
 	if ( slapMode & SLAP_SERVER_MODE ) {
 		OpExtra *oex;
 		LDAP_SLIST_FOREACH( oex, &op->o_extra, oe_next ) {
+			release = 0;
 			if ( oex->oe_key == mdb ) {
 				mdb_entry_return( op, e );
 				moi = (mdb_op_info *)oex;
@@ -291,9 +293,10 @@ int mdb_entry_release(
 				break;
 			}
 		}
-	} else {
-		mdb_entry_return( op, e );
 	}
+
+	if (release)
+		mdb_entry_return( op, e );
  
 	return 0;
 }