diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py
index 9dde299..1cfe827 100644
--- a/Lib/nturl2path.py
+++ b/Lib/nturl2path.py
@@ -7,7 +7,7 @@
     # ///C|/foo/bar/spam.foo
     # becomes
     # C:\foo\bar\spam.foo
-    import string, urllib
+    import string, urllib.parse
     # Windows itself uses ":" even in URLs.
     url = url.replace(':', '|')
     if not '|' in url:
@@ -19,7 +19,7 @@
             url = url[2:]
         components = url.split('/')
         # make sure not to convert quoted slashes :-)
-        return urllib.unquote('\\'.join(components))
+        return urllib.parse.unquote('\\'.join(components))
     comp = url.split('|')
     if len(comp) != 2 or comp[0][-1] not in string.ascii_letters:
         error = 'Bad URL: ' + url
@@ -29,7 +29,7 @@
     path = drive + ':'
     for  comp in components:
         if comp:
-            path = path + '\\' + urllib.unquote(comp)
+            path = path + '\\' + urllib.parse.unquote(comp)
     return path
 
 def pathname2url(p):
@@ -39,7 +39,7 @@
     # C:\foo\bar\spam.foo
     # becomes
     # ///C|/foo/bar/spam.foo
-    import urllib
+    import urllib.parse
     if not ':' in p:
         # No drive specifier, just convert slashes and quote the name
         if p[:2] == '\\\\':
@@ -48,16 +48,16 @@
         # (notice doubling of slashes at the start of the path)
             p = '\\\\' + p
         components = p.split('\\')
-        return urllib.quote('/'.join(components))
+        return urllib.parse.quote('/'.join(components))
     comp = p.split(':')
     if len(comp) != 2 or len(comp[0]) > 1:
         error = 'Bad path: ' + p
         raise IOError(error)
 
-    drive = urllib.quote(comp[0].upper())
+    drive = urllib.parse.quote(comp[0].upper())
     components = comp[1].split('\\')
     path = '///' + drive + '|'
     for comp in components:
         if comp:
-            path = path + '/' + urllib.quote(comp)
+            path = path + '/' + urllib.parse.quote(comp)
     return path
