diff --git a/lib/tasks/maxmind.rake b/lib/tasks/maxmind.rake
index c4e7ba39ab67019962ac049078e8bc5092210e41..0de813a76796f751b434b2344add83a2166025d2 100644
--- a/lib/tasks/maxmind.rake
+++ b/lib/tasks/maxmind.rake
@@ -1,5 +1,3 @@
-require 'zip'
-require 'fileutils'
 require 'maxmind_database'
 
 namespace :geocoder do
@@ -17,6 +15,13 @@ namespace :geocoder do
 
       desc "Extract (unzip) MaxMind GeoLite City data"
       task :extract do
+        begin
+          require 'zip'
+        rescue LoadError
+          puts "Please install gem: rubyzip (>= 1.0.0)"
+          exit
+        end
+        require 'fileutils'
         dir = ENV['DIR'] || "tmp/"
         archive_filename = Geocoder::MaxmindDatabase.archive_filename(:geolite_city_csv)
         Zip::File.open(File.join(dir, archive_filename)).each do |entry|