diff --git a/include/portable.h.in b/include/portable.h.in
index 0d11d8da55a28ffa17c41b93391c5563910ba243..c2fdf5bf20cf9d94ea2400c62e43b3dcf649b6fb 100644
--- a/include/portable.h.in
+++ b/include/portable.h.in
@@ -14,6 +14,11 @@
 
 /* end of preamble */
 
+#if !defined( SLAPD_SCHEMA_COMPAT ) && !defined( SLAPD_SCHEMA_NOT_COMPAT )
+	/* use new schema codes */
+#define SLAPD_SCHEMA_NOT_COMPAT 1
+#endif
+
 
 /* Define if on AIX 3.
    System headers sometimes define this.
diff --git a/include/portable.nt b/include/portable.nt
index 7248671e1f12b627811da4ee4a3c553f54c4333d..208edae1044ef4e1b85d0cb763b3f35b652824e4 100644
--- a/include/portable.nt
+++ b/include/portable.nt
@@ -16,6 +16,11 @@
 
 /* end of preamble */
 
+#if !defined( SLAPD_SCHEMA_COMPAT ) && !defined( SLAPD_SCHEMA_NOT_COMPAT )
+	/* use new schema codes */
+#define SLAPD_SCHEMA_NOT_COMPAT 1
+#endif
+
 /* --------------------------------------------------- */
 /* begin of MSVC5 specific entries */
 
diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c
index c11f81daa2faaf3655ea91f5220a35d2093aa491..7d3c5e4b8e078389907f836689479ab00d502e25 100644
--- a/servers/slapd/schema_init.c
+++ b/servers/slapd/schema_init.c
@@ -664,6 +664,7 @@ done:
 	*matchp = match;
 	return LDAP_SUCCESS;
 }
+#endif
 
 static int
 NumericStringNormalize(
@@ -720,8 +721,6 @@ NumericStringNormalize(
 	return LDAP_SUCCESS;
 }
 
-#endif
-
 struct syntax_defs_rec {
 	char *sd_desc;
 	int sd_flags;
diff --git a/tests/Makefile.in b/tests/Makefile.in
index c9aca9bd8813b9caa2f3e00103601960e6b0883c..84e8928ffec02c719133ad06b00285ef38709601 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -12,7 +12,8 @@ tests: bdb2 ldbm
 
 bdb2: test-bdb2
 test-bdb2:	FORCE
-	@-$(LN_S) $(srcdir)/data . 
+	@-$(LN_S) $(srcdir)/data data
+	@-$(LN_S) $(top_srcdir)/servers/slapd/schema schema 
 	@if test "$(BUILD_BDB2)" = "yes" ; then \
 		echo "Initiating LDAP tests..." ; \
 		$(MKDIR) test-db test-repl || true; \
@@ -23,27 +24,31 @@ test-bdb2:	FORCE
 
 ldbm: test-ldbm
 test-ldbm:	FORCE
-	@-$(LN_S) $(srcdir)/data .
+	@-$(LN_S) $(srcdir)/data data
+	@-$(LN_S) $(top_srcdir)/servers/slapd/schema schema 
 	@echo "Initiating LDAP tests..."
 	@-$(MKDIR) test-db test-repl || true
 	@$(srcdir)/scripts/all $(srcdir) ldbm
 
 passwd: test-passwd
 test-passwd: FORCE
-	@-$(LN_S) $(srcdir)/data .
+	@-$(LN_S) $(srcdir)/data data
+	@-$(LN_S) $(top_srcdir)/servers/slapd/schema schema 
 	@echo "Initiating LDAP tests..."
 	@-$(MKDIR) test-db test-repl || true
 	@$(srcdir)/scripts/passwd-search $(srcdir) passwd
 
 test-nis-schema:        test-nis-schema-ldbm
 test-nis-schema-ldbm:
-	@-$(LN_S) $(srcdir)/data .
+	@-$(LN_S) $(srcdir)/data data
+	@-$(LN_S) $(top_srcdir)/servers/slapd/schema schema 
 	@echo "Initiating LDAP server with NIS schema & ldbm backend..."; \
 	$(MKDIR) test-db test-repl ; \
 	$(srcdir)/scripts/startup_nis_ldap_server.sh $(srcdir) ldbm
 
 test-nis-schema-bdb2:
-	@-$(LN_S) $(srcdir)/data .
+	@-$(LN_S) $(srcdir)/data data
+	@-$(LN_S) $(top_srcdir)/servers/slapd/schema schema 
 	@echo "Initiating LDAP server with NIS schema & DB2 backend..."; \
 	@if test "$(BUILD_BDB2)" = "yes" ; then \
 		echo "Initiating LDAP tests..." ; \
@@ -57,6 +62,6 @@ clean-local:	FORCE
 	-$(RM) test-db/[!C]* test-repl/[!C]* *leak *gmon *core
 
 veryclean-local: FORCE
-	@-$(RM) data
+	@-$(RM) data schema
 	$(RM) -r test-db test-repl
 
diff --git a/tests/data/slapd-acl.conf b/tests/data/slapd-acl.conf
index c52b9700670efaf0f9dc361b1dbe0c55d97bdba8..8254d750df0d1e95473bb85ba0c0b8936502b605 100644
--- a/tests/data/slapd-acl.conf
+++ b/tests/data/slapd-acl.conf
@@ -2,8 +2,12 @@
 #
 # master slapd config -- for testing
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
+include ./schema/cosine.schema
+include ./schema/inetorgperson.schema
 schemacheck	off
 pidfile     ./test-db/slapd.pid
 argsfile    ./test-db/slapd.args
diff --git a/tests/data/slapd-dnssrv.conf b/tests/data/slapd-dnssrv.conf
index 5516869e02f6aa810cca115df87f4976121056cf..dab5812dd12a4599d35c73105d63b8d270ceac1e 100644
--- a/tests/data/slapd-dnssrv.conf
+++ b/tests/data/slapd-dnssrv.conf
@@ -2,12 +2,10 @@
 #
 # DNS SRV slapd config -- for testing
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
-#include ../../servers/slapd/schema/core.schema
-#include ../../servers/slapd/schema/openldap.schema
-#include ../../servers/slapd/schema/cosine.schema
-#include ../../servers/slapd/schema/inetorgperson.schema
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
 schemacheck	on
 pidfile     ./test-db/slapd.pid
 argsfile    ./test-db/slapd.args
diff --git a/tests/data/slapd-master.conf b/tests/data/slapd-master.conf
index 30903269399fe64a44b266e1900b5e7015eb14af..94b3891e62234330f2f144f5c9d1db1754668538 100644
--- a/tests/data/slapd-master.conf
+++ b/tests/data/slapd-master.conf
@@ -2,12 +2,12 @@
 #
 # master slapd config -- for testing
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
-#include ../../servers/slapd/schema/core.schema
-#include ../../servers/slapd/schema/openldap.schema
-#include ../../servers/slapd/schema/cosine.schema
-#include ../../servers/slapd/schema/inetorgperson.schema
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
+include ./schema/cosine.schema
+include ./schema/inetorgperson.schema
 schemacheck	on
 pidfile     ./test-db/slapd.pid
 argsfile    ./test-db/slapd.args
diff --git a/tests/data/slapd-passwd.conf b/tests/data/slapd-passwd.conf
index 10925e52d7c0f756d5299dc6d5afeb7009262ee0..66c5496f377bda68aeab756efb35ad62086de628 100644
--- a/tests/data/slapd-passwd.conf
+++ b/tests/data/slapd-passwd.conf
@@ -2,8 +2,12 @@
 #
 # master slapd config -- for testing
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
+include ./schema/cosine.schema
+include ./schema/inetorgperson.schema
 schemacheck	on
 pidfile     ./test-db/slapd.pid
 argsfile    ./test-db/slapd.args
diff --git a/tests/data/slapd-pw.conf b/tests/data/slapd-pw.conf
index bc8761f26eb690eb35a2ab3109e0cc05eda73c76..f5f7dccf9a91f35ddc04bc2fc67f84031f65c159 100644
--- a/tests/data/slapd-pw.conf
+++ b/tests/data/slapd-pw.conf
@@ -2,8 +2,12 @@
 #
 # master slapd config -- for testing
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
+include ./schema/cosine.schema
+include ./schema/inetorgperson.schema
 schemacheck	off
 pidfile     ./test-db/slapd.pid
 argsfile    ./test-db/slapd.args
diff --git a/tests/data/slapd-ref-slave.conf b/tests/data/slapd-ref-slave.conf
index c10b036a498a715dd4f64e0d15ef83c522e6d2f9..7c3c226e4afd48ee366b1bd85fd869cf1f024dc6 100644
--- a/tests/data/slapd-ref-slave.conf
+++ b/tests/data/slapd-ref-slave.conf
@@ -2,9 +2,15 @@
 #
 # slave slapd config -- for default referral testing
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
+include ./schema/cosine.schema
+include ./schema/inetorgperson.schema
+#
 schemacheck	off
+#
 pidfile     ./test-repl/slapd.pid
 argsfile    ./test-repl/slapd.args
 
diff --git a/tests/data/slapd-repl-master.conf b/tests/data/slapd-repl-master.conf
index d4f702f78b8c0ace24d78f5abe5433e182a6b07d..b336e435fad8359e11d739d6438b0f9b7da42d04 100644
--- a/tests/data/slapd-repl-master.conf
+++ b/tests/data/slapd-repl-master.conf
@@ -2,9 +2,15 @@
 #
 # master slapd config -- for testing of replication
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
+include ./schema/cosine.schema
+include ./schema/inetorgperson.schema
+#
 schemacheck	off
+#
 pidfile     ./test-db/slapd.pid
 argsfile    ./test-db/slapd.args
 
diff --git a/tests/data/slapd-repl-slave.conf b/tests/data/slapd-repl-slave.conf
index e9f0bb3ee76e8ddcc66023633cf523c94f160ce5..02a575f5b0e83043fd237c14f1cd542478e3734a 100644
--- a/tests/data/slapd-repl-slave.conf
+++ b/tests/data/slapd-repl-slave.conf
@@ -2,8 +2,13 @@
 #
 # master slapd config -- for testing of replication
 #
-include		./data/slapd.at.conf
-include		./data/slapd.oc.conf
+#include		./data/slapd.at.conf
+#include		./data/slapd.oc.conf
+include ./schema/core.schema
+include ./schema/openldap.schema
+include ./schema/cosine.schema
+include ./schema/inetorgperson.schema
+#
 schemacheck	off
 pidfile     ./test-repl/slapd.pid
 argsfile    ./test-repl/slapd.args