diff --git a/lib/geocoder/query.rb b/lib/geocoder/query.rb
index 79a992337b2af7b269bcca54273d1a96abee3368..242ff0e7018ca9ea58d361bf884b4fddf94d47e9 100644
--- a/lib/geocoder/query.rb
+++ b/lib/geocoder/query.rb
@@ -32,7 +32,7 @@ module Geocoder
     # appropriate to the Query text.
     #
     def lookup
-      if ip_address? || (options[:ip_lookup] && options[:lookup].nil?)
+      if options[:ip_address] || ip_address?
         name = options[:ip_lookup] || Configuration.ip_lookup || Geocoder::Lookup.ip_services.first
       else
         name = options[:lookup] || Configuration.lookup || Geocoder::Lookup.street_services.first
diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb
index 7d3ff7ae95100275de0045c44769bbb5e2968f03..a2a30eaccce2fde4443235199a4c95a76f368549 100644
--- a/test/unit/query_test.rb
+++ b/test/unit/query_test.rb
@@ -50,13 +50,10 @@ class QueryTest < GeocoderTestCase
     assert_equal Geocoder::Lookup::Nominatim, query.lookup.class
   end
 
-  def test_force_specify_ip_lookup
-    query = Geocoder::Query.new("address", :ip_lookup => :baidu_ip)
+  def test_force_specify_ip_address
+    Geocoder.configure({:ip_lookup => :google})
+    query = Geocoder::Query.new("address", {:ip_address => true})
     assert !query.ip_address?
-    assert_equal Geocoder::Lookup::BaiduIp, query.lookup.class
-
-    query = Geocoder::Query.new("address", :ip_lookup => :baidu_ip, :lookup => :bing)
-    assert !query.ip_address?
-    assert_equal Geocoder::Lookup::Bing, query.lookup.class
+    assert_equal Geocoder::Lookup::Google, query.lookup.class
   end
 end