diff --git a/lib/geocoder/lookups/yahoo.rb b/lib/geocoder/lookups/yahoo.rb
index 501c4c75d5bf90a20f55026b7fffe01244cd59d3..beff6c8830f352307e368610d64c4759253fd48f 100644
--- a/lib/geocoder/lookups/yahoo.rb
+++ b/lib/geocoder/lookups/yahoo.rb
@@ -53,7 +53,7 @@ module Geocoder::Lookup
       if raw_data.match /^<\?xml/
         if raw_data.include?("Rate Limit Exceeded")
           raise_error(Geocoder::OverQueryLimitError) || warn("Over API query limit.")
-        elsif raw_data =~ /\n(.*Please provide valid credentials.*)\n/
+        elsif raw_data =~ /<yahoo:description>(Please provide valid credentials.*)<\/yahoo:description>/i
           raise_error(Geocoder::InvalidApiKey) || warn("Invalid API key. Error response: #{$1}")
         end
       else