diff --git a/plugins/org.eclipse.objectteams.otdt/plugin.xml b/plugins/org.eclipse.objectteams.otdt/plugin.xml
index 3f2ef64..baecd65 100644
--- a/plugins/org.eclipse.objectteams.otdt/plugin.xml
+++ b/plugins/org.eclipse.objectteams.otdt/plugin.xml
@@ -34,6 +34,7 @@
 	    <builder hasNature="true">
 	       <run class="org.eclipse.objectteams.otdt.internal.core.builder.OTJBuilder">
 	       </run>
+		   <dynamicReference class="org.eclipse.jdt.internal.core.DynamicProjectReferences"/>
 	    </builder>
 	</extension>
 
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
index 6e1610d..d6ce939 100644
--- a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
@@ -125,18 +125,18 @@
 	public void testForcedExportsMissing() throws CoreException, IOException {
 		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
 		env.addProject(trac18b.getProject());
-		IJavaProject trac18a= fileManager.setUpJavaProject("Trac18a2"); 
-		env.addProject(trac18a.getProject());
+		IJavaProject trac18a2= fileManager.setUpJavaProject("Trac18a2"); 
+		env.addProject(trac18a2.getProject());
 		fullBuild();
 		expectingNoProblemsFor(trac18b.getPath());
-		expectAccessRestriction(trac18a, "src/trac18a/Team18.java", 42, 70);
+		expectAccessRestriction(trac18a2, "src/trac18a/Team18.java", 42, 70);
 		// fix the error
-		fileManager.replaceWorkspaceFile("Trac18a/plugin.xml", trac18a, "plugin.xml");
+		fileManager.replaceWorkspaceFile("Trac18a/plugin.xml", trac18a2, "plugin.xml");
 		incrementalBuild();
 		expectingNoProblemsFor(trac18b.getPath());
-		expectingOnlySpecificProblemsFor(trac18a.getPath(), new Problem[] {
-			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 42, 70),
-			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 163, 175),
+		expectingOnlySpecificProblemsFor(trac18a2.getPath(), new Problem[] {
+			getDecapsulationProblem(trac18a2, "trac18b.actions.SampleAction", "trac18a/Team18.java", 42, 70),
+			getDecapsulationProblem(trac18a2, "trac18b.actions.SampleAction", "trac18a/Team18.java", 163, 175),
 		});
 	}
 	
@@ -145,13 +145,13 @@
 	public void testForcedExportsGeneratedMethodRefs() throws CoreException, IOException {
 		IJavaProject trac18b= fileManager.setUpJavaProject("Trac18b"); 
 		env.addProject(trac18b.getProject());
-		IJavaProject trac18a= fileManager.setUpJavaProject("Trac18a3"); 
-		env.addProject(trac18a.getProject());
+		IJavaProject trac18a3= fileManager.setUpJavaProject("Trac18a3"); 
+		env.addProject(trac18a3.getProject());
 		fullBuild();
 		expectingNoProblemsFor(trac18b.getPath());
-		expectingOnlySpecificProblemsFor(trac18a.getPath(), new Problem[] {
-			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 42, 70),
-			getDecapsulationProblem(trac18a, "trac18b.actions.SampleAction", "trac18a/Team18.java", 163, 175)
+		expectingOnlySpecificProblemsFor(trac18a3.getPath(), new Problem[] {
+			getDecapsulationProblem(trac18a3, "trac18b.actions.SampleAction", "trac18a/Team18.java", 42, 70),
+			getDecapsulationProblem(trac18a3, "trac18b.actions.SampleAction", "trac18a/Team18.java", 163, 175)
 			// base-ctor call no longer flagged
 		});
 	}
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.project
index 722dc22..9f5f79e 100644
--- a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.project
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a2/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>Trac18a</name>
+	<name>Trac18a2</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.project b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.project
index 722dc22..5e9daa7 100644
--- a/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.project
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/workspace/Trac18a3/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>Trac18a</name>
+	<name>Trac18a3</name>
 	<comment></comment>
 	<projects>
 	</projects>
