diff --git a/lib/geocoder/configuration.rb b/lib/geocoder/configuration.rb
index b1547b2e1014944b0e8018dd38a6e46cbfd705f0..0535a0b69a5ba9e94d4587e5b3cbbf4067152c42 100644
--- a/lib/geocoder/configuration.rb
+++ b/lib/geocoder/configuration.rb
@@ -48,6 +48,7 @@ module Geocoder
       :timeout,
       :lookup,
       :language,
+      :request_headers,
       :use_https,
       :http_proxy,
       :https_proxy,
@@ -70,6 +71,7 @@ module Geocoder
       @timeout      = 3           # geocoding service timeout (secs)
       @lookup       = :google     # name of geocoding service (symbol)
       @language     = :en         # ISO-639 language code
+      @request_headers = {}          # HTTP headers for lookup
       @use_https    = false       # use HTTPS for lookup requests? (if supported)
       @http_proxy   = nil         # HTTP proxy server (user:pass@host:port)
       @https_proxy  = nil         # HTTPS proxy server (user:pass@host:port)
diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb
index 62f91207027a8145232ba4e03429acfe37f8fe73..8e58c4511f5c6e9830ed8094b46386378b162203 100644
--- a/lib/geocoder/lookups/base.rb
+++ b/lib/geocoder/lookups/base.rb
@@ -149,7 +149,7 @@ module Geocoder
           unless cache and body = cache[url]
             client = http_client.new(uri.host, uri.port)
             client.use_ssl = true if Geocoder::Configuration.use_https
-            response = client.get(uri.request_uri)
+            response = client.get(uri.request_uri, Geocoder::Configuration.request_headers)
             body = response.body
             if cache and (200..399).include?(response.code.to_i)
               cache[url] = body