diff --git a/lib/geocoder/lookup.rb b/lib/geocoder/lookup.rb
index ed260d154fc6937bed317e8be47304752d3ecb0f..21580e7c7f2368276b15396584d4c56fb760a999 100644
--- a/lib/geocoder/lookup.rb
+++ b/lib/geocoder/lookup.rb
@@ -30,7 +30,7 @@ module Geocoder
     # or nil if not found or if network error.
     #
     def search(*args)
-      return nil if args[0].blank?
+      return [] if args[0].blank?
       doc = parsed_response(args.join(","), args.size == 2)
       [].tap do |results|
         if doc
diff --git a/test/geocoder_test.rb b/test/geocoder_test.rb
index 312cbd30fb8ca0948d609201038407507dc7978f..f6a07392fef12e330334103ad0a7ad96f935a0b3 100644
--- a/test/geocoder_test.rb
+++ b/test/geocoder_test.rb
@@ -33,4 +33,11 @@ class GeocoderTest < Test::Unit::TestCase
     assert_equal "Manhattan",
       results.first.address_components_of_type(:sublocality).first['long_name']
   end
+
+  def test_does_not_choke_on_nil_address
+    v = Venue.new("Venue", nil)
+    assert_nothing_raised do
+      v.fetch_coordinates
+    end
+  end
 end