diff --git a/servers/slapd/back-monitor/init.c b/servers/slapd/back-monitor/init.c
index 1f82cfa9a411442d9ff3a961f397f33f8240b6e1..3fd6cf978d31959ca6ed616cf4310736ef472bd2 100644
--- a/servers/slapd/back-monitor/init.c
+++ b/servers/slapd/back-monitor/init.c
@@ -356,7 +356,7 @@ monitor_back_register_database_limbo(
 
 	el.el_type = LIMBO_DATABASE;
 
-	el.el_be = be;
+	el.el_be = be->bd_self;
 	el.el_ndn = ndn;
 	
 	for ( elpp = &mi->mi_entry_limbo;
diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c
index 1314c10e6adfb72b8b6482e71d5d1fcc62a74ec2..78c655cc64cb8e3fdcdb7c06a48a0b112ac3dd3a 100644
--- a/servers/slapd/backend.c
+++ b/servers/slapd/backend.c
@@ -585,6 +585,7 @@ backend_db_init(
 	}
 
 	be->bd_info = bi;
+	be->bd_self = be;
 
 	be->be_def_limit = frontendDB->be_def_limit;
 	be->be_dfltaccess = frontendDB->be_dfltaccess;
diff --git a/servers/slapd/frontend.c b/servers/slapd/frontend.c
index 63271f6882057cdb933ca38efe19a869309a5617..4ab36e5a2a3ba8c57856ce5b9dac7d6a671c0138 100644
--- a/servers/slapd/frontend.c
+++ b/servers/slapd/frontend.c
@@ -93,6 +93,7 @@ frontend_init( void )
 {
 	/* data */
 	frontendDB = &slap_frontendDB;
+	frontendDB->bd_self = frontendDB;
 
 	/* ACLs */
 	frontendDB->be_dfltaccess = ACL_READ;
diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h
index 8507e3cc93ef5b6659b567a726eabcc2a15d569c..ada56ab419f3c88bf42e09922601b02692a450b9 100644
--- a/servers/slapd/slap.h
+++ b/servers/slapd/slap.h
@@ -1707,6 +1707,7 @@ struct ConfigOCs;	/* config.h */
 
 struct BackendDB {
 	BackendInfo	*bd_info;	/* pointer to shared backend info */
+	struct BackendDB *bd_self;	/* pointer to this struct */
 
 	/* fields in this structure (and routines acting on this structure)
 	   should be renamed from be_ to bd_ */