diff --git a/oslo_messaging/rpc/client.py b/oslo_messaging/rpc/client.py
index 7beea841e..92886b17b 100644
--- a/oslo_messaging/rpc/client.py
+++ b/oslo_messaging/rpc/client.py
@@ -121,8 +121,7 @@ class _CallContext(object):
         """Check to see if a version is compatible with the version cap."""
         version = self.target.version if version is self._marker else version
         return (not self.version_cap or
-                utils.version_is_compatible(self.version_cap,
-                                            self.target.version))
+                utils.version_is_compatible(self.version_cap, version))
 
     def cast(self, ctxt, method, **kwargs):
         """Invoke a method and return immediately. See RPCClient.cast()."""
diff --git a/oslo_messaging/tests/rpc/test_client.py b/oslo_messaging/tests/rpc/test_client.py
index ebb72324b..197a296c6 100644
--- a/oslo_messaging/tests/rpc/test_client.py
+++ b/oslo_messaging/tests/rpc/test_client.py
@@ -513,6 +513,9 @@ class TestCanSendVersion(test_utils.BaseTestCase):
 
         if self.can_send_version is not _notset:
             can_send = client.can_send_version(version=self.can_send_version)
+            call_context_can_send = client.prepare().can_send_version(
+                version=self.can_send_version)
+            self.assertEqual(can_send, call_context_can_send)
         else:
             can_send = client.can_send_version()