diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index 7d8b14124a..a846f4b328 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -105,7 +105,7 @@ class AddProjectToImage(show.ShowOne):
             project_id,
         )
 
-        return zip(*sorted(six.iteritems(image_member._info)))
+        return zip(*sorted(six.iteritems(image_member)))
 
 
 class CreateImage(show.ShowOne):
diff --git a/openstackclient/tests/fakes.py b/openstackclient/tests/fakes.py
index 357c470f66..0f5ef74aa0 100644
--- a/openstackclient/tests/fakes.py
+++ b/openstackclient/tests/fakes.py
@@ -150,3 +150,11 @@ class FakeResponse(requests.Response):
         self._content = json.dumps(data)
         if not isinstance(self._content, six.binary_type):
             self._content = self._content.encode()
+
+
+class FakeModel(dict):
+    def __getattr__(self, key):
+        try:
+            return self[key]
+        except KeyError:
+            raise AttributeError(key)
diff --git a/openstackclient/tests/image/v2/test_image.py b/openstackclient/tests/image/v2/test_image.py
index 4ce854759b..72ba0567b5 100644
--- a/openstackclient/tests/image/v2/test_image.py
+++ b/openstackclient/tests/image/v2/test_image.py
@@ -238,10 +238,8 @@ class TestAddProjectToImage(TestImage):
             copy.deepcopy(image_fakes.IMAGE),
             loaded=True,
         )
-        self.image_members_mock.create.return_value = fakes.FakeResource(
-            None,
+        self.image_members_mock.create.return_value = fakes.FakeModel(
             copy.deepcopy(image_fakes.MEMBER),
-            loaded=True,
         )
         self.project_mock.get.return_value = fakes.FakeResource(
             None,