diff --git a/Lib/posixpath.py b/Lib/posixpath.py
index 2f7780c..d8da4ef 100644
--- a/Lib/posixpath.py
+++ b/Lib/posixpath.py
@@ -346,30 +346,25 @@
 
 def normpath(path):
     """Normalize path, eliminating double slashes, etc."""
+    if path == '':
+        return '.'
     import string
-    # Treat initial slashes specially
-    slashes = ''
-    while path[:1] == '/':
-        slashes = slashes + '/'
-        path = path[1:]
-    comps = string.splitfields(path, '/')
-    i = 0
-    while i < len(comps):
-        if comps[i] == '.':
-            del comps[i]
-            while i < len(comps) and comps[i] == '':
-                del comps[i]
-        elif comps[i] == '..' and i > 0 and comps[i-1] not in ('', '..'):
-            del comps[i-1:i+1]
-            i = i-1
-        elif comps[i] == '' and i > 0 and comps[i-1] <> '':
-            del comps[i]
-        else:
-            i = i+1
-    # If the path is now empty, substitute '.'
-    if not comps and not slashes:
-        comps.append('.')
-    return slashes + string.joinfields(comps, '/')
+    initial_slash = (path[0] == '/')
+    comps = string.split(path, '/')
+    new_comps = []
+    for comp in comps:
+        if comp in ('', '.'):
+            continue
+        if (comp != '..' or (not initial_slash and not new_comps) or 
+             (new_comps and new_comps[-1] == '..')):
+            new_comps.append(comp)
+        elif new_comps:
+            new_comps.pop()
+    comps = new_comps
+    path = string.join(comps, '/')
+    if initial_slash:
+        path = '/' + path
+    return path or '.'
 
 
 def abspath(path):
