diff --git a/lib/geocoder/lookups/esri.rb b/lib/geocoder/lookups/esri.rb
index cfd37a8aa0bf62cb27b2febcb06eb23be023ad18..9acd0b61fe69812d97aa2ad4d8ad7110ab2387d9 100644
--- a/lib/geocoder/lookups/esri.rb
+++ b/lib/geocoder/lookups/esri.rb
@@ -32,20 +32,17 @@ module Geocoder::Lookup
     end
 
     def query_url_params(query)
+      params = {
+        :f => "pjson",
+        :outFields => "*"
+      }
       if query.reverse_geocode?
-        {
-          :location => query.coordinates.reverse.join(','),
-          :outFields => :*,
-          :p => :pjson
-        }.merge(super)
+        params[:location] = query.coordinates.reverse.join(',')
       else
-        {
-          :f => :pjson,
-          :outFields => :*,
-          :text => query.sanitized_text
-        }.merge(super)
+        params[:text] = query.sanitized_text
       end
-    end  
+      params.merge(super)
+    end
 
   end
 end
diff --git a/test/services_test.rb b/test/services_test.rb
index fd0ac30041a6f0051a7b7d3a92081f6a802068cd..906f4fd3edc1f5a05c503179dbbc2eb89e317ae4 100644
--- a/test/services_test.rb
+++ b/test/services_test.rb
@@ -289,7 +289,7 @@ class ServicesTest < Test::Unit::TestCase
     query = Geocoder::Query.new([45.423733, -75.676333])
     lookup = Geocoder::Lookup.get(:esri)
     res = lookup.query_url(query)
-    assert_equal "http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?location=-75.676333%2C45.423733&outFields=%2A&p=pjson",
+    assert_equal "http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?f=pjson&location=-75.676333%2C45.423733&outFields=%2A",
       res
   end