* Build path validation for external folders fixed. (DLTK-599)
* Fixed display of paths in errors messages from buildpath validation
diff --git a/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/BuildpathEntry.java b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/BuildpathEntry.java
index 27515a9..34587d3 100644
--- a/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/BuildpathEntry.java
+++ b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/BuildpathEntry.java
@@ -1082,11 +1082,11 @@
 			boolean isProjectRelative = projectName
 					.equals(entryPath.segment(0));
 			String entryPathMsg = isProjectRelative ? entryPath
-					.removeFirstSegments(1).toString() : entryPath
-					.makeRelative().toString();
+					.removeFirstSegments(1).toString() : EnvironmentPathUtils
+					.getLocalPath(entryPath).makeRelative().toString();
 			boolean external = entry.isExternal();
 			// complain if duplicate path
-			if (!pathes.add(entryPath) && !external) {
+			if (!pathes.add(entryPath.toOSString()) /* && !external */) {
 				return new ModelStatus(IModelStatusConstants.NAME_COLLISION,
 						Messages.bind(Messages.buildpath_duplicateEntryPath,
 								new String[] { entryPathMsg, projectName }));
@@ -1137,7 +1137,9 @@
 														Messages.buildpath_mustEndWithSlash,
 														new String[] {
 																exclusionPattern,
-																entryPath
+																EnvironmentPathUtils
+																		.getLocalPath(
+																				entryPath)
 																		.makeRelative()
 																		.toString() }));
 							} else {
@@ -1150,11 +1152,15 @@
 														.bind(
 																Messages.buildpath_cannotNestEntryInEntry,
 																new String[] {
-																		entryPath
+																		EnvironmentPathUtils
+																				.getLocalPath(
+																						entryPath)
 																				.makeRelative()
 																				.toString(),
-																		otherEntry
-																				.getPath()
+																		EnvironmentPathUtils
+																				.getLocalPath(
+																						otherEntry
+																								.getPath())
 																				.makeRelative()
 																				.toString(),
 																		exclusionPattern }));
@@ -1165,11 +1171,15 @@
 														.bind(
 																Messages.buildpath_cannotNestEntryInEntryNoExclusion,
 																new String[] {
-																		entryPath
+																		EnvironmentPathUtils
+																				.getLocalPath(
+																						entryPath)
 																				.makeRelative()
 																				.toString(),
-																		otherEntry
-																				.getPath()
+																		EnvironmentPathUtils
+																				.getLocalPath(
+																						otherEntry
+																								.getPath())
 																				.makeRelative()
 																				.toString(),
 																		exclusionPattern }));
@@ -1181,11 +1191,15 @@
 													.bind(
 															Messages.buildpath_cannotNestEntryInLibrary,
 															new String[] {
-																	entryPath
+																	EnvironmentPathUtils
+																			.getLocalPath(
+																					entryPath)
 																			.makeRelative()
 																			.toString(),
-																	otherEntry
-																			.getPath()
+																	EnvironmentPathUtils
+																			.getLocalPath(
+																					otherEntry
+																							.getPath())
 																			.makeRelative()
 																			.toString() }));
 								}
@@ -1225,7 +1239,8 @@
 		String projectName = project.getElementName();
 		boolean pathStartsWithProject = projectName.equals(path.segment(0));
 		String entryPathMsg = pathStartsWithProject ? path.removeFirstSegments(
-				1).makeRelative().toString() : path.toString();
+				1).makeRelative().toString() : EnvironmentPathUtils
+				.getLocalPath(path).toString();
 		switch (entry.getEntryKind()) {
 		// container entry check
 		case IBuildpathEntry.BPE_CONTAINER:
@@ -1359,7 +1374,10 @@
 											.bind(
 													Messages.buildpath_illegalLibraryArchive,
 													new String[] {
-															path.toString(),
+															EnvironmentPathUtils
+																	.getLocalPath(
+																			path)
+																	.toString(),
 															projectName }));
 						}
 					}
@@ -1372,7 +1390,11 @@
 								Messages
 										.bind(
 												Messages.buildpath_illegalExternalFolder,
-												new String[] { path.toString(),
+												new String[] {
+														EnvironmentPathUtils
+																.getLocalPath(
+																		path)
+																.toString(),
 														projectName }));
 					}
 				}