diff --git a/Lib/dospath.py b/Lib/dospath.py
index 55123a1..98efe67 100644
--- a/Lib/dospath.py
+++ b/Lib/dospath.py
@@ -3,7 +3,6 @@
 import os
 import stat
 import string
-import re
 
 
 def normcase(s):
@@ -103,23 +102,18 @@
     return split(p)[0]
 
 
-# Return the longest prefix of all list elements.
-
 def commonprefix(m):
-    "Given a list of pathnames, returns the longest common leading component"
+    """Return the longest prefix of all list elements."""
+
     if not m: return ''
-    n = map(string.lower, m)
-    for i in range(len(n)):
-        n[i] = re.split(r"[/\\]", n[i])
-            
-    prefix = n[0]
-    for item in n:
+    prefix = m[0]
+    for item in m:
         for i in range(len(prefix)):
             if prefix[:i+1] <> item[:i+1]:
                 prefix = prefix[:i]
                 if i == 0: return ''
                 break
-    return "\\".join(prefix)
+    return prefix
 
 
 # Get size, mtime, atime of files.
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index f8334e5..aa441bd 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -8,7 +8,6 @@
 import os
 import stat
 import string
-import re
 
 
 # Normalize the case of a pathname and map slashes to backslashes.
@@ -159,18 +158,14 @@
 def commonprefix(m):
     "Given a list of pathnames, returns the longest common leading component"
     if not m: return ''
-    n = map(string.lower, m)
-    for i in range(len(n)):
-        n[i] = re.split(r"[/\\]", n[i])
-            
-    prefix = n[0]
-    for item in n:
+    prefix = m[0]
+    for item in m:
         for i in range(len(prefix)):
             if prefix[:i+1] <> item[:i+1]:
                 prefix = prefix[:i]
                 if i == 0: return ''
                 break
-    return "\\".join(prefix)
+    return prefix
 
 
 # Get size, mtime, atime of files.
diff --git a/Lib/posixpath.py b/Lib/posixpath.py
index d8da4ef..f7e0161 100644
--- a/Lib/posixpath.py
+++ b/Lib/posixpath.py
@@ -118,18 +118,14 @@
 def commonprefix(m):
     "Given a list of pathnames, returns the longest common leading component"
     if not m: return ''
-    n = m[:]
-    for i in range(len(n)):
-        n[i] = n[i].split("/")
-
-    prefix = n[0]
-    for item in n:
+    prefix = m[0]
+    for item in m:
         for i in range(len(prefix)):
             if prefix[:i+1] <> item[:i+1]:
                 prefix = prefix[:i]
                 if i == 0: return ''
                 break
-    return "/".join(prefix)
+    return prefix
 
 
 # Get size, mtime, atime of files.
