diff --git a/servers/slapd/back-ldap/init.c b/servers/slapd/back-ldap/init.c
index 458f95376bc86959ece26667b5cbab37cca07cea..d8240b6ca845baf571e5f3ad3612dba266c109b9 100644
--- a/servers/slapd/back-ldap/init.c
+++ b/servers/slapd/back-ldap/init.c
@@ -46,14 +46,21 @@ int init_module(int argc, char *argv[]) {
 
 #endif /* SLAPD_LDAP */
 
+static int
+ldap_back_open(
+	BackendInfo *bi
+)
+{
+	bi->bi_controls = slap_known_controls;
+	return 0;
+}
+
 int
 ldap_back_initialize(
     BackendInfo	*bi
 )
 {
-	bi->bi_controls = slap_known_controls;
-
-	bi->bi_open = 0;
+	bi->bi_open = ldap_back_open;
 	bi->bi_config = 0;
 	bi->bi_close = 0;
 	bi->bi_destroy = 0;
diff --git a/servers/slapd/back-meta/init.c b/servers/slapd/back-meta/init.c
index 8ed7cb7379e5e5656b9b96cbaff5e462a8ecd389..3b3decd93fbd2a3762e9075ece47e0e9cc897795 100644
--- a/servers/slapd/back-meta/init.c
+++ b/servers/slapd/back-meta/init.c
@@ -42,14 +42,21 @@ init_module( int argc, char *argv[] ) {
 
 #endif /* SLAPD_META */
 
+static int
+meta_back_open(
+	BackendInfo *bi
+)
+{
+	bi->bi_controls = slap_known_controls;
+	return 0;
+}
+
 int
 meta_back_initialize(
 		BackendInfo	*bi
 )
 {
-	bi->bi_controls = slap_known_controls;
-
-	bi->bi_open = 0;
+	bi->bi_open = meta_back_open;
 	bi->bi_config = 0;
 	bi->bi_close = 0;
 	bi->bi_destroy = 0;