diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java
index a4da2e3..b5e07e9 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java
@@ -27,6 +27,9 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.jdt.core.*;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.ASTParser;
 import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
 import org.eclipse.jdt.internal.core.JavaModelManager;
 import org.eclipse.jdt.internal.core.PackageFragmentRoot;
@@ -37,7 +40,7 @@
 	super(name);
 }
 static {
-//	TESTS_NAMES = new String[] { "testBug360164" };
+//	TESTS_NAMES = new String[] { "testBug351697" };
 }
 public static Test suite() {
 	TestSuite suite = (TestSuite) buildModelTestSuite(JavaProjectTests.class);
@@ -2530,4 +2533,54 @@
 		this.deleteProject("P");
 	}
 }
+/**
+ * @bug 351697: java.lang.ClassCastException
+ * @test Verify that ClassCastException is not thrown when a .class file is copied to a wrong source package.
+ * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=351697"
+ */
+public void testBug351697() throws Exception {
+	try {
+		IJavaProject proj = this.createJavaProject("P", new String[] {"src"}, "bin");
+		proj.getProject().open(null);
+		createFolder("/P/src/p");
+		createFolder("/P/src/q");
+		createFolder("/P/temp_folder");
+
+		IFile toEdit = createFile("/P/src/p/P.java",
+				"package p;" +
+				"public class P {" +
+				"	Q b = new Q();" +
+				"	public void foo() {" +
+				"	}");
+
+		IFile toDelete = createFile("/P/src/q/Q.java",
+				"package q;" +
+				"public class Q {" +
+				"}");
+		proj.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
+
+		moveFile("/P/bin/q/Q.class", "/P/temp_folder/Q.class");
+		deleteResource(toDelete);
+		proj.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
+
+		ICompilationUnit unit = (ICompilationUnit)JavaCore.create(toEdit);
+		unit.open(null);
+		moveFile( "/P/temp_folder/Q.class", "/P/src/p/Q.class/");
+		proj.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
+
+		try {
+			ASTParser parser= ASTParser.newParser(AST.JLS4);
+			parser.setSource(unit);
+			parser.setResolveBindings(true);
+			ASTNode node = parser.createAST(null);
+			assertNotNull("ASTNode should not be null", node);
+		}
+		catch(ClassCastException cce) {
+			fail("ClassCastException:" + cce.getMessage());
+		}
+
+	} finally {
+		this.deleteProject("P");
+	}
+}
 }
diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index 5a05863..0a53703 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -52,7 +52,9 @@
 <h2>What's new in this drop</h2>
 
 <h3>Problem Reports Fixed</h3>
-<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=375394">375394</a>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=351697">351697</a>
+ClassCastException while copying a .class file to wrong source package
+<br><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=375394">375394</a>
 Incorrect type checking for parameterized types
 <br><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=375326">375326</a>
 try-with-resources assignment in statement produces stack map exception
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/NameLookup.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/NameLookup.java
index d08dff5..ebfb67b 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/NameLookup.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/NameLookup.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 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
@@ -1087,6 +1087,11 @@
 						int lastDot = cuName.lastIndexOf('.');
 						if (lastDot != topLevelTypeName.length() || !topLevelTypeName.regionMatches(0, cuName, 0, lastDot))
 							continue;
+
+						// https://bugs.eclipse.org/bugs/show_bug.cgi?id=351697
+						// If we are looking at source location, just ignore binary types
+						if (!(cu instanceof ICompilationUnit))
+							continue;
 						IType type = ((ICompilationUnit) cu).getType(topLevelTypeName);
 						type = getMemberType(type, name, firstDot);
 						if (acceptType(type, acceptFlags, true/*a source type*/)) { // accept type checks for existence
