diff --git a/lib/bson/ordered_hash.rb b/lib/bson/ordered_hash.rb
index <HASH>..<HASH> 100644
--- a/lib/bson/ordered_hash.rb
+++ b/lib/bson/ordered_hash.rb
@@ -30,7 +30,7 @@ module BSON
         when BSON::OrderedHash
            keys == other.keys && values == other.values
         else
-          !other.nil? && keys.size == other.keys.size && keys.all? {|x| self[x] == other[x] }
+          super
         end
       rescue
         false
Call super in BSON::OrderedHash#== instead of doing the comparison in Ruby.

This has a notable performance impact for large hashes.