diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c
index 379adc1b807992096c861fe31b4f1fc688369597..a8846b10a1a404208605df5e918936cd15a8c215 100644
--- a/servers/slapd/overlays/translucent.c
+++ b/servers/slapd/overlays/translucent.c
@@ -439,7 +439,7 @@ static int translucent_modify(Operation *op, SlapReply *rs) {
 **
 */
 
-	op->o_bd->bd_info = (BackendInfo *) on->on_info;
+	op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
 	rc = be_entry_get_rw(op, &op->o_req_ndn, NULL, NULL, 0, &e);
 	op->o_bd->bd_info = (BackendInfo *) on;
 
@@ -486,7 +486,7 @@ release:
 			} else
 				entry_free(re);
 		}
-		op->o_bd->bd_info = (BackendInfo *) on->on_info;
+		op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
 		be_entry_release_r(op, e);
 		op->o_bd->bd_info = (BackendInfo *) on;
 		if(erc == SLAP_CB_CONTINUE) {
@@ -662,7 +662,7 @@ static int translucent_pwmod(Operation *op, SlapReply *rs) {
 **	return CONTINUE;
 */
 
-	op->o_bd->bd_info = (BackendInfo *) on->on_info;
+	op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
 	rc = be_entry_get_rw(op, &op->o_req_ndn, NULL, NULL, 0, &e);
 	op->o_bd->bd_info = (BackendInfo *) on;
 
@@ -676,7 +676,7 @@ static int translucent_pwmod(Operation *op, SlapReply *rs) {
 				entry_free(re);
 			}
 		}
-		op->o_bd->bd_info = (BackendInfo *) on->on_info;
+		op->o_bd->bd_info = (BackendInfo *) on->on_info->oi_orig;
 		be_entry_release_r(op, e);
 		op->o_bd->bd_info = (BackendInfo *) on;
 		return SLAP_CB_CONTINUE;