diff --git a/CHANGES.rst b/CHANGES.rst
index 7cb2095..4a64ccf 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,3 +1,8 @@
+v0.5.2
+======
+
+#7: Parent of a directory now actually returns the parent.
+
 v0.5.1
 ======
 
diff --git a/zipp.py b/zipp.py
index 918e688..8cdfdc0 100644
--- a/zipp.py
+++ b/zipp.py
@@ -159,7 +159,7 @@ class Path:
 
     @property
     def parent(self):
-        parent_at = posixpath.dirname(self.at)
+        parent_at = posixpath.dirname(self.at.rstrip('/'))
         if parent_at:
             parent_at += '/'
         return self._next(parent_at)

diff --git a/test_zipp.py b/test_zipp.py
index da68fea..e084374 100644
--- a/test_zipp.py
+++ b/test_zipp.py
@@ -170,3 +170,14 @@ class TestEverything(unittest.TestCase):
             root = zipp.Path(zipfile_abcde)
             assert (root / 'a').parent.at == ''
             assert (root / 'a' / 'b').parent.at == 'a/'
+
+    def test_dir_parent(self):
+        for zipfile_abcde in self.zipfile_abcde():
+            root = zipp.Path(zipfile_abcde)
+            assert (root / 'b').parent.at == ''
+            assert (root / 'b/').parent.at == ''
+
+    def test_missing_dir_parent(self):
+        for zipfile_abcde in self.zipfile_abcde():
+            root = zipp.Path(zipfile_abcde)
+            assert (root / 'missing dir/').parent.at == ''

Attempting to get a parent of a dir results in the same object
In ae4be5a, I illustrate an issue I discovered where retrieving the parent of a directory results in the same object and not actually the parent.
test_zipp.py::TestEverything::test_dir_parent test_zipp.py::TestEverything::test_missing_dir_parent
test_zipp.py::TestEverything::test_iterdir_istype test_zipp.py::TestEverything::test_joinpath test_zipp.py::TestEverything::test_open test_zipp.py::TestEverything::test_parent test_zipp.py::TestEverything::test_pathlike_construction test_zipp.py::TestEverything::test_read test_zipp.py::TestEverything::test_traverse_pathlike test_zipp.py::TestEverything::test_traverse_simplediv test_zipp.py::TestEverything::test_traverse_truediv