Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
component of the path.
diff --git a/Lib/posixpath.py b/Lib/posixpath.py
index b29eedc..261e5a7 100644
--- a/Lib/posixpath.py
+++ b/Lib/posixpath.py
@@ -414,7 +414,7 @@
     if isabs(filename):
         bits = ['/'] + filename.split('/')[1:]
     else:
-        bits = filename.split('/')
+        bits = [''] + filename.split('/')
 
     for i in range(2, len(bits)+1):
         component = join(*bits[0:i])
diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py
index 0a6ed99..b2d8d40 100644
--- a/Lib/test/test_posixpath.py
+++ b/Lib/test/test_posixpath.py
@@ -476,6 +476,26 @@
                 self.safe_rmdir(ABSTFN + "/k/y")
                 self.safe_rmdir(ABSTFN + "/k")
                 self.safe_rmdir(ABSTFN)
+        
+        def test_realpath_resolve_first(self):
+            # Bug #1213894: The first component of the path, if not absolute,
+            # must be resolved too.
+
+            try:
+                old_path = abspath('.')
+                os.mkdir(ABSTFN)
+                os.mkdir(ABSTFN + "/k")
+                os.symlink(ABSTFN, ABSTFN + "link")
+                os.chdir(dirname(ABSTFN))
+                
+                base = basename(ABSTFN)
+                self.assertEqual(realpath(base + "link"), ABSTFN)
+                self.assertEqual(realpath(base + "link/k"), ABSTFN + "/k")
+            finally:
+                os.chdir(old_path)
+                self.safe_remove(ABSTFN + "link")
+                self.safe_rmdir(ABSTFN + "/k")
+                self.safe_rmdir(ABSTFN)
 
         # Convenience functions for removing temporary files.
         def pass_os_error(self, func, filename):
diff --git a/Misc/NEWS b/Misc/NEWS
index 196d762..50f5a27 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -136,6 +136,9 @@
 Library
 -------
 
+- Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
+  component of the path.
+
 - Patch #1120353: The xmlrpclib module provides better, more transparent,
   support for datetime.{datetime,date,time} objects.  With use_datetime set
   to True, applications shouldn't have to fiddle with the DateTime wrapper