diff --git a/lib/geocoder/configuration.rb b/lib/geocoder/configuration.rb
index 44baabeebf4547d063ee0798ce643a2d1aebfa86..a534a39eb89089d6cf4f21678f67777937ae2742 100644
--- a/lib/geocoder/configuration.rb
+++ b/lib/geocoder/configuration.rb
@@ -14,6 +14,9 @@ module Geocoder
 
         # use HTTPS for lookup requests? (if supported)
         [:use_https, false],
+        
+        # optionally supply the headers for the HTTP request, e.g. User-Agent
+        [:request_headers, {}],
 
         # HTTP proxy server (user:pass@host:port)
         [:http_proxy, nil],
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