diff --git a/lib/geocoder/lookups/base.rb b/lib/geocoder/lookups/base.rb
index 22a7c349546c1ed9316a618524305c9b70e02080..f5e9470314eb272173cf9afdd8431629082bfe08 100644
--- a/lib/geocoder/lookups/base.rb
+++ b/lib/geocoder/lookups/base.rb
@@ -99,7 +99,7 @@ module Geocoder
       # Object used to make HTTP requests.
       #
       def http_client
-        protocol = "http#{'s' if configuration.use_https}"
+        protocol = "http#{'s' if use_ssl?}"
         proxy_name = "#{protocol}_proxy"
         if proxy = configuration.send(proxy_name)
           proxy_url = !!(proxy =~ /^#{protocol}/) ? proxy : protocol + '://' + proxy
@@ -198,7 +198,7 @@ module Geocoder
       # Set in configuration but not available for every service.
       #
       def protocol
-        "http" + (configuration.use_https ? "s" : "")
+        "http" + (use_ssl? ? "s" : "")
       end
 
       def valid_response?(response)
@@ -262,7 +262,7 @@ module Geocoder
           args = [uri.host, uri.port]
           args = args.push(uri.user, uri.password) unless uri.user.nil? or uri.password.nil?
           opts = {}
-          opts[:use_ssl] = true if configuration.use_https
+          opts[:use_ssl] = use_ssl?
 
           http_client.start(*args, opts) do |client|
             client.get(uri.request_uri, configuration.http_headers)
@@ -270,6 +270,10 @@ module Geocoder
         end
       end
 
+      def use_ssl?
+        configuration.use_https
+      end
+
       def check_api_key_configuration!(query)
         key_parts = query.lookup.required_api_key_parts
         if key_parts.size > Array(configuration.api_key).size
diff --git a/lib/geocoder/lookups/telize.rb b/lib/geocoder/lookups/telize.rb
index b66cdae8494a7f43f060e41bf365f09d19e783e8..43b1de404968f3120dea1258246338bf51e5ee8a 100644
--- a/lib/geocoder/lookups/telize.rb
+++ b/lib/geocoder/lookups/telize.rb
@@ -15,6 +15,10 @@ module Geocoder::Lookup
 
     private # ---------------------------------------------------------------
 
+    def use_ssl?
+      false
+    end
+
     def results(query)
       # don't look up a loopback address, just return the stored result
       return [reserved_result(query.text)] if query.loopback_ip_address?
diff --git a/test/integration/http_client_test.rb b/test/integration/http_client_test.rb
index fbf21d098613f4201665eb4a3b302a4b6c7b227e..f0906de938621c457e3a8d31a1b14f6dacdccaaf 100644
--- a/test/integration/http_client_test.rb
+++ b/test/integration/http_client_test.rb
@@ -22,4 +22,10 @@ class HttpClientTest < Test::Unit::TestCase
     results = Geocoder.search "27701"
     assert_not_nil results.first
   end
+
+  def test_ssl_opt_out
+    Geocoder.configure(ip_lookup: :telize, use_https: true)
+    results = Geocoder.search "74.200.247.59"
+    assert_not_nil results.first
+  end
 end
diff --git a/test/unit/lookups/telize_test.rb b/test/unit/lookups/telize_test.rb
index 864b9b70989acaee5e63eb09925d0213152329ef..1a39367d2bd5124c167cb9d47bbbc3e6e4761a40 100644
--- a/test/unit/lookups/telize_test.rb
+++ b/test/unit/lookups/telize_test.rb
@@ -27,4 +27,10 @@ class TelizeTest < GeocoderTestCase
     results = Geocoder.search("555.555.555.555")
     assert_equal 0, results.length
   end
+
+  def test_uses_http_even_if_use_https_true
+    Geocoder.configure(use_https: true)
+    result = Geocoder.search("74.200.247.59").first
+    assert result.is_a?(Geocoder::Result::Telize)
+  end
 end