diff --git a/lib/geocoder/stores/mongo_base.rb b/lib/geocoder/stores/mongo_base.rb
index 62a4d98f987f8a83c3a533a353c545ce2ebc0308..bfc295d2a28196ebd17550911b290f45300c4498 100644
--- a/lib/geocoder/stores/mongo_base.rb
+++ b/lib/geocoder/stores/mongo_base.rb
@@ -24,7 +24,8 @@ module Geocoder::Store
 
           # Use BSON::OrderedHash if Ruby's hashes are unordered.
           # Conditions must be in order required by indexes (see mongo gem).
-          empty = RUBY_VERSION.split('.')[1].to_i < 9 ? BSON::OrderedHash.new : {}
+          version = RUBY_VERSION.split('.').map { |i| i.to_i }
+          empty = version[0] < 2 && version[1] < 9 ? BSON::OrderedHash.new : {}
 
           conds = empty.clone
           field = geocoder_options[:coordinates]