diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py
index a25dc2a..d86bbc2 100644
--- a/Lib/nturl2path.py
+++ b/Lib/nturl2path.py
@@ -10,21 +10,22 @@
 
 		C:\foo\bar\spam.foo
 	"""
-	import string
+	import string, urllib
 	if not '|' in url:
 	    # No drive specifier, just convert slashes
-	    components = string.splitfields(url, '/')
-	    return string.joinfields(components, '\\')
-	comp = string.splitfields(url, '|')
+	    components = string.split(url, '/')
+	    # make sure not to convert quoted slashes :-)
+	    return urllib.unquote(string.join(components, '\\'))
+	comp = string.split(url, '|')
 	if len(comp) != 2 or comp[0][-1] not in string.letters:
 		error = 'Bad URL: ' + url
 		raise IOError, error
 	drive = string.upper(comp[0][-1])
-	components = string.splitfields(comp[1], '/')
+	components = string.split(comp[1], '/')
 	path = drive + ':'
 	for  comp in components:
 		if comp:
-			path = path + '\\' + comp
+			path = path + '\\' + urllib.unquote(comp)
 	return path
 
 def pathname2url(p):
@@ -37,20 +38,20 @@
 		///C|/foo/bar/spam.foo
 	"""
 
-	import string
+	import string, urllib
 	if not ':' in p:
-	    # No drive specifier, just convert slashes
-	    components = string.splitfields(p, '\\')
-	    return string.joinfields(components, '/')
-	comp = string.splitfields(p, ':')
+	    # No drive specifier, just convert slashes and quote the name
+	    components = string.split(p, '\\')
+	    return urllib.quote(string.join(components, '/'))
+	comp = string.split(p, ':')
 	if len(comp) != 2 or len(comp[0]) > 1:
 		error = 'Bad path: ' + p
 		raise IOError, error
 
-	drive = string.upper(comp[0])
-	components = string.splitfields(comp[1], '\\')
+	drive = urllib.quote(string.upper(comp[0]))
+	components = string.split(comp[1], '\\')
 	path = '///' + drive + '|'
 	for comp in components:
 		if comp:
-			path = path + '/' + comp
+			path = path + '/' + urllib.quote(comp)
 	return path
