diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py
new file mode 100644
index 0000000..17f01f5
--- /dev/null
+++ b/Lib/nturl2path.py
@@ -0,0 +1,52 @@
+#
+# nturl2path convert a NT pathname to a file URL and 
+# vice versa  
+
+def url2pathname(url):
+	""" Convert a URL to a DOS path...
+	Currently only works for absolute paths
+
+		///C|/foo/bar/spam.foo
+
+			becomes
+
+		C:\foo\bar\spam.foo
+	"""
+	import string
+	comp = string.splitfields(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], '/')
+	path = drive + ':'
+	for  comp in components:
+		if comp:
+			path = path + '\\' + comp
+	return path
+
+def pathname2url(p):
+
+	""" Convert a DOS path name to a file url...
+	Currently only works for absolute paths
+
+		C:\foo\bar\spam.foo
+
+			becomes
+
+		///C|/foo/bar/spam.foo
+	"""
+
+	import string
+	comp = string.splitfields(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], '\\')
+	path = '///' + drive + '|'
+	for comp in components:
+		if comp:
+			path = path + '/' + comp
+	return path
