diff --git a/lib/geocoder.rb b/lib/geocoder.rb
index 9222b1dadd2e7276b2b4a54f45fe0d3d3ccaf532..e043def76fc881d57562bb311f7b8fe5e210b974 100644
--- a/lib/geocoder.rb
+++ b/lib/geocoder.rb
@@ -174,14 +174,15 @@ module Geocoder
   # coordinates as an array: <tt>[lat, lon]</tt>.
   #
   def fetch_coordinates(save = false)
-    location = send(self.class.geocoder_options[:method_name])
-    returning Geocoder.fetch_coordinates(location) do |c|
-      unless c.blank?
-        method = (save ? "update" : "write") + "_attribute"
-        send method, self.class.geocoder_options[:latitude], c[0]
-        send method, self.class.geocoder_options[:longitude], c[1]
-      end
+    coords = Geocoder.fetch_coordinates(
+      send(self.class.geocoder_options[:method_name])
+    )
+    unless coords.blank?
+      method = (save ? "update" : "write") + "_attribute"
+      send method, self.class.geocoder_options[:latitude],  coords[0]
+      send method, self.class.geocoder_options[:longitude], coords[1]
     end
+    coords
   end
 
   ##