Merge "Bug 483713 - Archive libraries are handled incorrectly"
diff --git a/core/plugins/org.eclipse.dltk.core.index.sql/src/org/eclipse/dltk/internal/core/index/sql/SqlSearchEngine.java b/core/plugins/org.eclipse.dltk.core.index.sql/src/org/eclipse/dltk/internal/core/index/sql/SqlSearchEngine.java
index dcdeda9..8d4e601 100644
--- a/core/plugins/org.eclipse.dltk.core.index.sql/src/org/eclipse/dltk/internal/core/index/sql/SqlSearchEngine.java
+++ b/core/plugins/org.eclipse.dltk.core.index.sql/src/org/eclipse/dltk/internal/core/index/sql/SqlSearchEngine.java
@@ -267,16 +267,17 @@
 				ISourceModule sourceModule = sourceModuleCache
 						.get(resourcePath);
 				if (sourceModule == null) {
-					if (projectFragment.isExternal()) {
-						IScriptFolder scriptFolder = new ExternalScriptFolder(
-								(ProjectFragment) projectFragment, new Path(
-										folderPath));
-						sourceModule = scriptFolder.getSourceModule(fileName);
-					} else if (projectFragment.isArchive()) {
+					if (projectFragment.isArchive()) {
 						IScriptFolder scriptFolder = new ArchiveFolder(
-								(ProjectFragment) projectFragment, new Path(
-										folderPath));
+								(ProjectFragment) projectFragment,
+								new Path(folderPath));
 						sourceModule = scriptFolder.getSourceModule(fileName);
+					} else if (projectFragment.isExternal()) {
+						IScriptFolder scriptFolder = new ExternalScriptFolder(
+								(ProjectFragment) projectFragment,
+								new Path(folderPath));
+						sourceModule = scriptFolder.getSourceModule(fileName);
+
 					} else if (projectFragment.isBuiltin()) {
 						IScriptFolder scriptFolder = new BuiltinScriptFolder(
 								(ProjectFragment) projectFragment, new Path(
diff --git a/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/ScriptProject.java b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/ScriptProject.java
index a633e90..0162a35 100644
--- a/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/ScriptProject.java
+++ b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/internal/core/ScriptProject.java
@@ -189,7 +189,7 @@
 	}
 
 	public IProjectFragment getProjectFragment(String path) {
-		return getProjectFragment(canonicalizedPath(new Path(path)));
+		return getProjectFragment(canonicalizedPath(Path.fromPortableString(path)));
 	}
 
 	/*