diff --git a/lib/geocoder/exceptions.rb b/lib/geocoder/exceptions.rb
index 7f6a081c2c32a9f3f74c1334c0e7e24732e1479f..f01d7dd7f1c8ee2f5ff5567ea8249eaeda040b13 100644
--- a/lib/geocoder/exceptions.rb
+++ b/lib/geocoder/exceptions.rb
@@ -29,4 +29,7 @@ module Geocoder
   class ServiceUnavailable < Error
   end
 
+  class LookupTimeout < ::Timeout::Error
+  end
+
 end
diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb
index c54c5c60224f0f679d9274b8148183c914f6cde3..1f005ab7f76bb2cd9557a5b05da5f039d7bcbbd9 100644
--- a/lib/geocoder/lookups/base.rb
+++ b/lib/geocoder/lookups/base.rb
@@ -274,6 +274,8 @@ module Geocoder
           end
           client.request(req)
         end
+      rescue Net::OpenTimeout, Net::ReadTimeout
+        raise Geocoder::LookupTimeout
       end
 
       def use_ssl?