diff --git a/lib/geocoder/stores/active_record.rb b/lib/geocoder/stores/active_record.rb
index b459cd967051f01630ac8b465d06ec503955f6b8..344979e97bbda0aabe467ab4de1fd1561aaec8c3 100644
--- a/lib/geocoder/stores/active_record.rb
+++ b/lib/geocoder/stores/active_record.rb
@@ -266,11 +266,12 @@ module Geocoder::Store
     #
     def reverse_geocode
       do_lookup(true) do |o,rs|
-        r = rs.first
-        unless r.address.nil?
-          o.send :write_attribute, self.class.geocoder_options[:fetched_address], r.address
+        if r = rs.first
+          unless r.address.nil?
+            o.send :write_attribute, self.class.geocoder_options[:fetched_address], r.address
+          end
+          r.address
         end
-        r.address
       end
     end
 
diff --git a/lib/geocoder/stores/mongo_base.rb b/lib/geocoder/stores/mongo_base.rb
index fa84801402f831f1006f9750904e9460b8fb8ac6..29054e486f25987c56cfa2dcda63d91c71bd6fc5 100644
--- a/lib/geocoder/stores/mongo_base.rb
+++ b/lib/geocoder/stores/mongo_base.rb
@@ -71,11 +71,12 @@ module Geocoder::Store
     #
     def reverse_geocode
       do_lookup(true) do |o,rs|
-        r = rs.first
-        unless r.address.nil?
-          o.send :write_attribute, self.class.geocoder_options[:fetched_address], r.address
+        if r = rs.first
+          unless r.address.nil?
+            o.send :write_attribute, self.class.geocoder_options[:fetched_address], r.address
+          end
+          r.address
         end
-        r.address
       end
     end
   end