diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c
index a466f52022e8121378f2b079fca9f9de8f785317..da425200935c782b604e4cd718133985b1295260 100644
--- a/servers/slapd/overlays/syncprov.c
+++ b/servers/slapd/overlays/syncprov.c
@@ -2474,6 +2474,13 @@ syncprov_db_init(
 	slap_overinst	*on = (slap_overinst *)be->bd_info;
 	syncprov_info_t	*si;
 
+	if ( SLAP_ISGLOBALOVERLAY( be ) ) {
+		Debug( LDAP_DEBUG_ANY,
+			"syncprov must be instantiated within a database.\n",
+			0, 0, 0 );
+		return 1;
+	}
+
 	si = ch_calloc(1, sizeof(syncprov_info_t));
 	on->on_bi.bi_private = si;
 	ldap_pvt_thread_mutex_init( &si->si_csn_mutex );
diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h
index a19420c5a2ac9489f684cbc5e4aae667e12a2854..0c7ae1d410f035a7ee66829f6e990c5cf7f14cb8 100644
--- a/servers/slapd/slap.h
+++ b/servers/slapd/slap.h
@@ -1746,6 +1746,7 @@ struct slap_backend_db {
 #define SLAP_NOLASTMOD(be)			(SLAP_DBFLAGS(be) & SLAP_DBFLAG_NOLASTMOD)
 #define SLAP_LASTMOD(be)			(!SLAP_NOLASTMOD(be))
 #define SLAP_ISOVERLAY(be)			(SLAP_DBFLAGS(be) & SLAP_DBFLAG_OVERLAY)
+#define SLAP_ISGLOBALOVERLAY(be)	(SLAP_DBFLAGS(be) & SLAP_DBFLAG_GLOBAL_OVERLAY)
 #define SLAP_NO_SCHEMA_CHECK(be)	\
 	(SLAP_DBFLAGS(be) & SLAP_DBFLAG_NO_SCHEMA_CHECK)
 #define	SLAP_GLUE_INSTANCE(be)		\