Corrected incomplete fix for makedirs with symlink

- fixed #220
diff --git a/fake_filesystem_test.py b/fake_filesystem_test.py
index bcda591..4322922 100755
--- a/fake_filesystem_test.py
+++ b/fake_filesystem_test.py
@@ -1557,6 +1557,16 @@
         self.os.symlink(link_target, link_path)
         self.assertRaisesOSError(errno.ELOOP, self.os.makedirs, link_path)
 
+    def testMakedirsIfParentIsSymlink(self):
+        self.filesystem.is_windows_fs = False
+        base_dir = "/foo/bar"
+        self.filesystem.CreateDirectory(base_dir)
+        link_dir = base_dir + "/linked"
+        self.os.symlink(base_dir, link_dir)
+        new_dir = link_dir + '/f'
+        self.os.makedirs(new_dir)
+        self.assertTrue(self.filesystem.Exists(new_dir))
+
     def testMakedirsRaisesIfAccessDenied(self):
         """makedirs raises exception if access denied."""
         directory = '/a'
diff --git a/pyfakefs/fake_filesystem.py b/pyfakefs/fake_filesystem.py
index 506c318..ddf775b 100644
--- a/pyfakefs/fake_filesystem.py
+++ b/pyfakefs/fake_filesystem.py
@@ -1920,9 +1920,9 @@
                 current_dir.AddEntry(new_dir)
                 current_dir = new_dir
             else:
-                current_dir = directory
                 if directory.st_mode & stat.S_IFLNK == stat.S_IFLNK:
-                    current_dir = self.ResolveObject(directory.contents)
+                    directory = self.ResolveObject(directory.contents)
+                current_dir = directory
                 if directory.st_mode & stat.S_IFDIR != stat.S_IFDIR:
                     raise OSError(errno.ENOTDIR, 'Not a directory', current_dir.GetPath())
 
@@ -2275,7 +2275,7 @@
         current_dir = self.root
         for component in path_components:
             if (component not in current_dir.contents
-                or not isinstance(current_dir.contents, list)):
+                or not isinstance(current_dir.contents, dict)):
                 break
             else:
                 current_dir = current_dir.contents[component]