diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/SourceMap.java b/dev/codeserver/java/com/google/gwt/dev/codeserver/SourceMap.java
index 3c13186..b44dc98 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/SourceMap.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/SourceMap.java
@@ -81,7 +81,8 @@
     Set<String> directories = new HashSet<String>();
     for (int i = 0; i < sources.getLength(); i++) {
       String filename = sources.get(i).asString().getString();
-      directories.add(new File(filename).getParent());
+      int lastSlashPos = filename.lastIndexOf('/');
+      directories.add(lastSlashPos < 0 ? "" : filename.substring(0, lastSlashPos));
     }
 
     List<String> result = new ArrayList<String>();
@@ -102,9 +103,13 @@
 
     List<String> result = new ArrayList<String>();
     for (int i = 0; i < sources.getLength(); i++) {
-      File candidate = new File(sources.get(i).asString().getString());
-      if (parent.equals(candidate.getParent() + "/")) {
-        result.add(candidate.getName());
+      String candidate = sources.get(i).asString().getString();
+      if (!candidate.startsWith(parent)) {
+        continue;
+      }
+      int nameStart = candidate.lastIndexOf('/') + 1;
+      if (nameStart == parent.length()) {
+        result.add(candidate.substring(nameStart));
       }
     }
 
