diff --git a/org.eclipse.jdt.apt.tests/META-INF/MANIFEST.MF b/org.eclipse.jdt.apt.tests/META-INF/MANIFEST.MF
index b90295d..c940708 100644
--- a/org.eclipse.jdt.apt.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.apt.tests/META-INF/MANIFEST.MF
@@ -36,7 +36,8 @@
  org.eclipse.jdt.core.tests.model,
  org.eclipse.core.resources,
  org.eclipse.core.runtime,
- org.eclipse.test.performance
+ org.eclipse.test.performance,
+ org.eclipse.jdt.core.tests.binaries;bundle-version="1.0.0"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: %providerName
diff --git a/org.eclipse.jdt.apt.tests/build.properties b/org.eclipse.jdt.apt.tests/build.properties
index b8d99e4..b49f00a 100644
--- a/org.eclipse.jdt.apt.tests/build.properties
+++ b/org.eclipse.jdt.apt.tests/build.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2005, 2007 BEA Systems, Inc.
+# Copyright (c) 2005, 2011 BEA Systems, Inc.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -10,7 +10,6 @@
 output.apt.jar = bin/
 bin.includes = plugin.xml,\
                test.xml,\
-               perf-test-project.zip,\
                META-INF/,\
                resources/,\
                *.jar,\
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java
index 63b97b8..b61f8ad 100644
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java
+++ b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 BEA Systems, Inc. 
+ * Copyright (c) 2005, 2011 BEA Systems, Inc. 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -59,12 +59,10 @@
 		IPath path = root.getLocation();
 		File destRoot = path.toFile();
 		
-		URL platformURL = Platform.getBundle("org.eclipse.jdt.apt.tests").getEntry("/");  //$NON-NLS-1$//$NON-NLS-2$
+		URL platformURL = Platform.getBundle("org.eclipse.jdt.core.tests.binaries").getEntry("/");  //$NON-NLS-1$//$NON-NLS-2$
 		File f = new File(FileLocator.toFileURL(platformURL).getFile());
 		f = new File(f, "perf-test-project.zip"); //$NON-NLS-1$
 
-		
-		//InputStream in = PerfTests.class.getClassLoader().getResourceAsStream("perf-test-project.zip");
 		InputStream in = new FileInputStream(f);
 		ZipInputStream zipIn = new ZipInputStream(in);
 		try {
diff --git a/org.eclipse.jdt.core.tests.performance/META-INF/MANIFEST.MF b/org.eclipse.jdt.core.tests.performance/META-INF/MANIFEST.MF
index b1af997..c540092 100644
--- a/org.eclipse.jdt.core.tests.performance/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.core.tests.performance/META-INF/MANIFEST.MF
@@ -16,5 +16,6 @@
  org.eclipse.jdt.core.tests.model;bundle-version="[3.4.0,4.0.0)",
  org.junit;bundle-version="3.8.1",
  org.eclipse.test.performance;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.text;bundle-version="[3.1.0,4.0.0)"
+ org.eclipse.text;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.jdt.core.tests.binaries;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/org.eclipse.jdt.core.tests.performance/build.properties b/org.eclipse.jdt.core.tests.performance/build.properties
index f685056..d962a6c 100644
--- a/org.eclipse.jdt.core.tests.performance/build.properties
+++ b/org.eclipse.jdt.core.tests.performance/build.properties
@@ -13,10 +13,7 @@
                jdtcoretestsperf.jar,\
                local_test.xml,\
                META-INF/,\
-               plugin.properties,\
-               full-source-R3_0.zip,\
-               GenericTypeTest.java,\
-               EclipseVisitorBug.java
+               plugin.properties
 src.includes = about.html
 source.jdtcoretestsperf.jar = src/
 output.jdtcoretestsperf.jar = bin/
diff --git a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceBuildTests.java b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceBuildTests.java
index a6a35f9..a4eb402 100644
--- a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceBuildTests.java
+++ b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceBuildTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -281,7 +281,7 @@
 		final String targetWorkspacePath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile().getCanonicalPath();
 		String logFileName = targetWorkspacePath + File.separator + getName()+".log";
 		
-		String pluginDir = getPluginDirectoryPath();
+		String pluginDir = getPluginBinariesDirectoryPath();
 		String sources = "";
 		for (int i=0, l=srcPaths.length; i<l; i++) {
 			String path = pluginDir + File.separator + srcPaths[i];
diff --git a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceFormatterTests.java b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceFormatterTests.java
index 55f386d..7e9ff2e 100644
--- a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceFormatterTests.java
+++ b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceFormatterTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -65,7 +65,7 @@
 	// Read big file
 	System.out.print("	- Read big file source...");
 	long start = System.currentTimeMillis();
-	FORMAT_TYPE_SOURCE = Util.fileContent(getPluginDirectoryPath()+File.separator+"GenericTypeTest.java");
+	FORMAT_TYPE_SOURCE = Util.fileContent(getPluginBinariesDirectoryPath()+File.separator+"GenericTypeTest.java");
 	System.out.println("("+(System.currentTimeMillis()-start)+"ms)");
 }
 
diff --git a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java
index c155be2..a3ca875 100644
--- a/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java
+++ b/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java
@@ -405,9 +405,9 @@
 	/*
 	 * Returns the OS path to the directory that contains this plugin.
 	 */
-	static String getPluginDirectoryPath() {
+	static String getPluginBinariesDirectoryPath() {
 		try {
-			URL platformURL = Platform.getBundle("org.eclipse.jdt.core.tests.performance").getEntry("/");
+			URL platformURL = Platform.getBundle("org.eclipse.jdt.core.tests.binaries").getEntry("/");
 			return new File(FileLocator.toFileURL(platformURL).getFile()).getAbsolutePath();
 		} catch (IOException e) {
 			e.printStackTrace();
@@ -621,7 +621,7 @@
 		long start = System.currentTimeMillis();
 		int dirLength = directories.length;
 		if (dirLength < 62) {
-			String fullSourceZipPath = getPluginDirectoryPath() + File.separator + "full-source-R3_0.zip";
+			String fullSourceZipPath = getPluginBinariesDirectoryPath() + File.separator + "full-source-R3_0.zip";
 			System.out.println("Unzipping "+fullSourceZipPath);
 			System.out.print("	in "+targetWorkspacePath+"...");
 			Util.unzip(fullSourceZipPath, targetWorkspacePath);
diff --git a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
index 765804e..3b74acd 100644
--- a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
+++ b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
@@ -15,7 +15,7 @@
 #Format: compiler.name = word1 word2 word3
 compiler.name = Eclipse Compiler for Java(TM)
 #Format: compiler.version = 0.XXX[, other words (don't forget the comma if adding other words)]
-compiler.version = 0.C11, 3.8.0 M3
+compiler.version = 0.C12, 3.8.0 M3
 compiler.copyright = Copyright IBM Corp 2000, 2011. All rights reserved.
 
 ### progress
diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index aebe030..40f26d8 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -42,11 +42,25 @@
 	</td>
   </tr>
 </table>
+<a name="v_C12"></a>
+<hr><h1>
+Eclipse Platform Build Notes<br>
+Java development tools core</h1>
+Eclipse SDK 3.8.0 - September 23, 2011 - 3.8.0 M3
+<br>Project org.eclipse.jdt.core v_C12
+(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_C12">cvs</a>).
+<h2>What's new in this drop</h2>
+<ul>
+<li>Tagging to prepare for the git migration</li>
+</ul>
+
+<h3>Problem Reports Fixed</h3>
+
 <a name="v_C11"></a>
 <hr><h1>
 Eclipse Platform Build Notes<br>
 Java development tools core</h1>
-Eclipse SDK 3.8.0 - September 20, 2011 - 3.8.0 M3
+Eclipse SDK 3.8.0 - September 20, 2011
 <br>Project org.eclipse.jdt.core v_C11
 (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_C11">cvs</a>).
 <h2>What's new in this drop</h2>
