diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/resolver.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/resolver.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/resolver.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/resolver.java	2011-12-21 11:58:07.079545004 +1000
@@ -56,6 +56,7 @@
 
 package org.apache.xml.resolver.apps;
 
+import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.URL;
@@ -239,7 +240,7 @@
 	// tack on a basename because URLs point to files not dirs
 	String userdir = System.getProperty("user.dir");
 	userdir.replace('\\', '/');
-	base = new URL("file:///" + userdir + "/basename");
+	base = new File("basename").toURI().toURL();
       } catch (MalformedURLException e) {
 	String userdir = System.getProperty("user.dir");
 	userdir.replace('\\', '/');
@@ -252,7 +253,7 @@
 	systemId = sysid.toString();
       } catch (MalformedURLException e) {
 	try {
-	  sysid = new URL("file:///" + systemId);
+	  sysid = new File(systemId).toURI().toURL();
 	} catch (MalformedURLException e2) {
 	  debug.message(1, "Malformed URL on system id", systemId);
 	}
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/XParseError.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/XParseError.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/XParseError.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/apps/XParseError.java	2011-12-21 11:58:34.284843103 +1000
@@ -56,6 +56,7 @@
 
 package org.apache.xml.resolver.apps;
 
+import java.io.File;
 import java.net.URL;
 import java.net.MalformedURLException;
 
@@ -101,17 +102,8 @@
     showErrors = errors;
     showWarnings = warnings;
 
-    String dir = System.getProperty("user.dir");
-    String file = "";
-
-    if (dir.endsWith("/")) {
-      file = "file:" + dir + "file";
-    } else {
-      file = "file:" + dir + "/" + file;
-    }
-
     try {
-      URL url = new URL(file);
+      URL url = new File("").toURI().toURL();
       baseURI = url.toString();
     } catch (MalformedURLException mue) {
       // nop;
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/Catalog.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/Catalog.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/Catalog.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/Catalog.java	2011-12-21 11:57:19.815026902 +1000
@@ -56,6 +56,7 @@
 
 package org.apache.xml.resolver;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.FileNotFoundException;
 import java.io.InputStream;
@@ -836,8 +837,7 @@
     // properly...
     try {
       // tack on a basename because URLs point to files not dirs
-      String userdir = fixSlashes(System.getProperty("user.dir"));
-      catalogCwd = new URL("file:" + userdir + "/basename");
+      catalogCwd = new File("basename").toURI().toURL();
     } catch (MalformedURLException e) {
       String userdir = fixSlashes(System.getProperty("user.dir"));
       catalogManager.debug.message(1, "Malformed URL on cwd", userdir);
@@ -849,7 +849,7 @@
       base = new URL(catalogCwd, fixSlashes(fileName));
     } catch (MalformedURLException e) {
       try {
-	base = new URL("file:" + fixSlashes(fileName));
+	base = new File(fixSlashes(fileName)).toURI().toURL();
       } catch (MalformedURLException e2) {
 	catalogManager.debug.message(1, "Malformed URL on catalog filename",
 		      fixSlashes(fileName));
@@ -931,7 +931,7 @@
 	newbase = new URL(base, value);
       } catch (MalformedURLException e) {
 	try {
-	  newbase = new URL("file:" + value);
+	  newbase = new File(value).toURI().toURL();
 	} catch (MalformedURLException e2) {
 	  catalogManager.debug.message(1, "Malformed URL on base", value);
 	  newbase = null;
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/helpers/BootstrapResolver.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/helpers/BootstrapResolver.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/helpers/BootstrapResolver.java	2003-09-26 03:39:59.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/helpers/BootstrapResolver.java	2011-12-21 11:57:54.549407687 +1000
@@ -60,6 +60,7 @@
 import java.net.URL;
 import java.net.MalformedURLException;
 import java.io.InputStream;
+import java.io.File;
 
 import javax.xml.transform.URIResolver;
 import javax.xml.transform.Source;
@@ -225,17 +226,8 @@
       URL url = new URL(uri);
       return url.toString();
     } catch (MalformedURLException mue) {
-      String dir = System.getProperty("user.dir");
-      String file = "";
-
-      if (dir.endsWith("/")) {
-	file = "file://" + dir + uri;
-      } else {
-	file = "file://" + dir + "/" + uri;
-      }
-
       try {
-	URL fileURL = new URL(file);
+	URL fileURL = new File(uri).toURI().toURL();
 	return fileURL.toString();
       } catch (MalformedURLException mue2) {
 	// bail
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/SAXCatalogReader.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/SAXCatalogReader.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/SAXCatalogReader.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/SAXCatalogReader.java	2011-12-21 11:37:56.238998145 +1000
@@ -57,6 +57,7 @@
 package org.apache.xml.resolver.readers;
 
 import java.util.Hashtable;
+import java.io.File;
 import java.io.IOException;
 import java.io.FileNotFoundException;
 import java.io.InputStream;
@@ -232,7 +233,7 @@
     try {
       url = new URL(fileUrl);
     } catch (MalformedURLException e) {
-      url = new URL("file:///" + fileUrl);
+      url = new File(fileUrl).toURI().toURL();
     }
 
     debug = catalog.getCatalogManager().debug;
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/TextCatalogReader.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/TextCatalogReader.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/TextCatalogReader.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/readers/TextCatalogReader.java	2011-12-21 11:37:27.613706934 +1000
@@ -56,6 +56,7 @@
 
 package org.apache.xml.resolver.readers;
 
+import java.io.File;
 import java.io.InputStream;
 import java.io.IOException;
 import java.io.FileNotFoundException;
@@ -133,7 +134,7 @@
     try {
       catURL = new URL(fileUrl);
     } catch (MalformedURLException e) {
-      catURL = new URL("file:///" + fileUrl);
+      catURL = new File(fileUrl).toURI().toURL();
     }
 
     URLConnection urlCon = catURL.openConnection();
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/CatalogResolver.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/CatalogResolver.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/CatalogResolver.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/CatalogResolver.java	2011-12-21 11:58:10.577583340 +1000
@@ -56,6 +56,7 @@
 
 package org.apache.xml.resolver.tools;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
@@ -317,17 +318,8 @@
       URL url = new URL(uri);
       return url.toString();
     } catch (MalformedURLException mue) {
-      String dir = System.getProperty("user.dir");
-      String file = "";
-
-      if (dir.endsWith("/")) {
-	file = "file://" + dir + uri;
-      } else {
-	file = "file://" + dir + "/" + uri;
-      }
-
       try {
-	URL fileURL = new URL(file);
+	URL fileURL = new File(uri).toURI().toURL();
 	return fileURL.toString();
       } catch (MalformedURLException mue2) {
 	// bail
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingParser.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingParser.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingParser.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingParser.java	2011-12-21 11:57:26.789103494 +1000
@@ -56,6 +56,7 @@
 
 package org.apache.xml.resolver.tools;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
@@ -433,12 +434,10 @@
     parser.setDocumentHandler(this);
     parser.setDTDHandler(this);
 
-    String userdir = System.getProperty("user.dir");
     URL cwd = null;
 
-    userdir.replace('\\', '/');
     try {
-      cwd = new URL("file:///" + userdir + "/basename");
+      cwd = new File("basename").toURI().toURL();
     } catch (MalformedURLException mue) {
       cwd = null;
     }
diff -ru xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingXMLFilter.java xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingXMLFilter.java
--- xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingXMLFilter.java	2003-09-02 17:05:08.000000000 +1000
+++ xml-commons-resolver-1_1_b1/java/src/org/apache/xml/resolver/tools/ResolvingXMLFilter.java	2011-12-21 11:58:15.249634517 +1000
@@ -56,6 +56,7 @@
 
 package org.apache.xml.resolver.tools;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
@@ -347,12 +348,9 @@
 
   /** Save the base URI of the document being parsed. */
   private void setupBaseURI(String systemId) {
-    String userdir = System.getProperty("user.dir");
     URL cwd = null;
-
-    userdir.replace('\\', '/');
     try {
-      cwd = new URL("file:///" + userdir + "/basename");
+      cwd = new File("basename").toURI().toURL();
     } catch (MalformedURLException mue) {
       cwd = null;
     }

