diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py
index 29ea80f..10ea272 100644
--- a/Lib/nturl2path.py
+++ b/Lib/nturl2path.py
@@ -25,11 +25,14 @@
         error = 'Bad URL: ' + url
         raise IOError, error
     drive = comp[0][-1].upper()
-    components = comp[1].split('/')
     path = drive + ':'
-    for  comp in components:
+    components = comp[1].split('/')
+    for comp in components:
         if comp:
             path = path + '\\' + urllib.unquote(comp)
+    # Issue #11474: url like '/C|/' should convert into 'C:\\'
+    if path.endswith(':') and url.endswith('/'):
+        path += '\\'
     return path
 
 def pathname2url(p):
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index 7bf383f..e7e54a2 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -5,6 +5,7 @@
 import unittest
 from test import test_support
 import os
+import sys
 import mimetools
 import tempfile
 import StringIO
@@ -630,6 +631,23 @@
                          "url2pathname() failed; %s != %s" %
                          (expect, result))
 
+    @unittest.skipUnless(sys.platform == 'win32',
+                         'test specific to the nturl2path library')
+    def test_ntpath(self):
+        given = ('/C:/', '///C:/', '/C|//')
+        expect = 'C:\\'
+        for url in given:
+            result = urllib.url2pathname(url)
+            self.assertEqual(expect, result,
+                             'nturl2path.url2pathname() failed; %s != %s' %
+                             (expect, result))
+        given = '///C|/path'
+        expect = 'C:\\path'
+        result = urllib.url2pathname(given)
+        self.assertEqual(expect, result,
+                         'nturl2path.url2pathname() failed; %s != %s' %
+                         (expect, result))
+
 class Utility_Tests(unittest.TestCase):
     """Testcase to test the various utility functions in the urllib."""
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 4718a69..20fa417 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -51,6 +51,9 @@
 Library
 -------
 
+- Issue #11474: Fix the bug with url2pathname() handling of '/C|/' on Windows.
+  Patch by Santoso Wijaya.
+
 - Issue #9233: Fix json.loads('{}') to return a dict (instead of a list), when
   _json is not available.
 
