diff --git a/CHANGELOG.md b/CHANGELOG.md
index b0bf5e93b98577ab600b35cbaefaf99942272744..ee1e9634dfe2cd11fe268f0f84a24a442d49be0c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@ Major changes to Geocoder for each release. Please see the Git log for complete
 1.2.4 (???)
 -------------------
 * Add OpenCageData geocoder (thanks github.com/mtmail).
+* Remove CloudMade geocoder.
 
 1.2.3 (2014 Jul 11)
 -------------------
diff --git a/README.md b/README.md
index 2dc1605edebef4984e0ef3e1228eb56e35368cfc..343bba8f935cdcfc425ad92ad9a3b1174fd67298 100644
--- a/README.md
+++ b/README.md
@@ -548,17 +548,6 @@ Data Science Toolkit provides an API whose reponse format is like Google's but w
 * **Limitations**: Only good for non-commercial use. For commercial usage please check http://developer.baidu.com/map/question.htm#qa0013
 * **Notes**: To use Baidu set `Geocoder.configure(:lookup => :baidu, :api_key => "your_api_key")`.
 
-#### CloudMade (`:cloudmade`)
-
-* **API key**: required
-* **Quota**: 100,000 free requests, then purchase 100,000 more for $15
-* **Region**: world
-* **SSL support**: yes ($5 per 100,000 requests)
-* **Languages**: en
-* **Documentation**: http://cloudmade.com/documentation/geocoding
-* **Terms of Service**: http://cloudmade.com/api-terms-of-service
-* **Limitations**: ?
-
 #### Geocodio (`:geocodio`)
 
 * **API key**: required
diff --git a/lib/geocoder/lookup.rb b/lib/geocoder/lookup.rb
index eb1d4e5e004e7302ed6dc0e427ba862a58981aab..b2dcd136bcbb61004db4867011bee5b976d2f00d 100644
--- a/lib/geocoder/lookup.rb
+++ b/lib/geocoder/lookup.rb
@@ -36,7 +36,6 @@ module Geocoder
         :ovi,
         :here,
         :baidu,
-        :cloudmade,
         :geocodio,
         :smarty_streets,
         :test
diff --git a/lib/geocoder/lookups/cloudmade.rb b/lib/geocoder/lookups/cloudmade.rb
deleted file mode 100644
index afb6993e44c9007371057c3620a4c0155003641e..0000000000000000000000000000000000000000
--- a/lib/geocoder/lookups/cloudmade.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-require 'geocoder/lookups/base'
-require 'geocoder/results/cloudmade'
-
-module Geocoder::Lookup
-  class Cloudmade < Base
-
-    def name
-      "Cloudmade"
-    end
-
-    def query_url(query)
-      "http://geocoding.cloudmade.com/#{configuration.api_key}/geocoding/v2/find.js?#{url_query_string(query)}"
-    end
-
-    def required_api_key_parts
-      ["key"]
-    end
-
-    private
-
-    def results(query)
-      data = fetch_data(query)
-      (data && data['features']) || []
-    end
-
-    def query_url_params(query)
-      {
-        :query => query.sanitized_text,
-        :return_location => true,
-        :return_geometry => false
-      }.merge(super)
-    end
-
-  end
-end
diff --git a/lib/geocoder/results/cloudmade.rb b/lib/geocoder/results/cloudmade.rb
deleted file mode 100644
index 4f62146e0b17236dd8c55d1e071bae898996b39b..0000000000000000000000000000000000000000
--- a/lib/geocoder/results/cloudmade.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-require 'geocoder/results/base'
-
-module Geocoder::Result
-  class Cloudmade < Base
-
-    def coordinates
-      @data["centroid"]["coordinates"]
-    end
-
-    def street
-      @data["location"]["road"]
-    end
-
-    def city
-      @data["location"]["city"]
-    end
-    
-    def state
-      @data["location"]["county"]
-    end
-    alias_method :state_code, :state
-
-    def country
-      @data["location"]["country"]
-    end
-    alias_method :country_code, :country
-
-    def postal_code
-      @data["location"]["postcode"]
-    end
-
-    def address
-      [street, city, state, postal_code, country].compact.reject{|s| s.length == 0 }.join(", ")
-    end
-
-  end
-end
-
-
diff --git a/test/unit/lookup_test.rb b/test/unit/lookup_test.rb
index 7515b599526f70eda35f2c1c7bc4994bd6bdfc04..b1b30cb90e71d856b55b94d2aa62dc3e55fcd39b 100644
--- a/test/unit/lookup_test.rb
+++ b/test/unit/lookup_test.rb
@@ -87,7 +87,7 @@ class LookupTest < GeocoderTestCase
   def test_returns_empty_array_on_invalid_key
     silence_warnings do
       #Geocoder::Lookup.all_services_except_test.each do |l|
-      [:bing, :yahoo, :yandex, :maxmind, :cloudmade, :baidu, :baidu_ip].each do |l|
+      [:bing, :yahoo, :yandex, :maxmind, :baidu, :baidu_ip].each do |l|
         Geocoder.configure(:lookup => l)
         set_api_key!(l)
         assert_equal [], Geocoder.search("invalid key")