diff --git a/lib/mongo/server/description.rb b/lib/mongo/server/description.rb
index <HASH>..<HASH> 100644
--- a/lib/mongo/server/description.rb
+++ b/lib/mongo/server/description.rb
@@ -465,7 +465,7 @@ module Mongo
       #
       # @since 2.0.0
       def primary?
-        !!config[PRIMARY] && !replica_set_name.nil?
+        !!config[PRIMARY] && hosts.include?(address.to_s) && !replica_set_name.nil?
       end
 
       # Get the name of the replica set the server belongs to, returns nil if
RUBY-<I> Check that server's hostname is included in its config hosts list to be considered a primary