diff --git a/lib/geocoder.rb b/lib/geocoder.rb
index 9e4fe686f219707bbf0c50105815ad7c2916b691..9222b1dadd2e7276b2b4a54f45fe0d3d3ccaf532 100644
--- a/lib/geocoder.rb
+++ b/lib/geocoder.rb
@@ -84,9 +84,6 @@ module Geocoder
         "PI() / 180 / 2), 2) ))"
       default_near_scope_options(latitude, longitude, radius, options).merge(
         :select => "#{options[:select] || '*'}, #{distance} AS distance",
-        :conditions => \
-          ["#{lat_attr} BETWEEN ? AND ? AND #{lon_attr} BETWEEN ? AND ?"] +
-          coordinate_bounds(latitude, longitude, radius),
         :having => "#{distance} <= #{radius}"
       )
     end
@@ -98,12 +95,8 @@ module Geocoder
     # objects outside the given radius).
     #
     def approx_near_scope_options(latitude, longitude, radius, options)
-      lat_attr = geocoder_options[:latitude]
-      lon_attr = geocoder_options[:longitude]
       default_near_scope_options(latitude, longitude, radius, options).merge(
-        :conditions => \
-          ["#{lat_attr} BETWEEN ? AND ? AND #{lon_attr} BETWEEN ? AND ?"] +
-          coordinate_bounds(latitude, longitude, radius)
+        :select => options[:select] || nil
       )
     end
     
@@ -111,10 +104,15 @@ module Geocoder
     # Options used for any near-like scope.
     #
     def default_near_scope_options(latitude, longitude, radius, options)
+      lat_attr = geocoder_options[:latitude]
+      lon_attr = geocoder_options[:longitude]
       {
         :order  => options[:order],
         :limit  => options[:limit],
-        :offset => options[:offset]
+        :offset => options[:offset],
+        :conditions => \
+          ["#{lat_attr} BETWEEN ? AND ? AND #{lon_attr} BETWEEN ? AND ?"] +
+          coordinate_bounds(latitude, longitude, radius)
       }
     end