diff --git a/lib/tasks/language.rake b/lib/tasks/language.rake
index b1868f15fb997104c8f8329a9dc5ac21bf967129..ae99b5a92eb2e0b284696d46d72ae9006e6f1591 100644
--- a/lib/tasks/language.rake
+++ b/lib/tasks/language.rake
@@ -12,4 +12,40 @@ namespace :language do
       end
     end
   end
+
+  desc 'Destroy languages that are not defaults'
+  task :restart => :environment do
+    default_language = Language.find_or_create_by(name:'Outro') do |l|
+      l.code = 'Outro'
+    end
+    Language.find_each do |language|
+      unless is_valid? language
+        LearningObject.where(language: language).update_all(language_id: default_language.id)
+        language.destroy
+      end
+    end
+  end
+
+  def is_valid?(language)
+    if default_languages.has_key? language.name and default_languages[language.name] == language.code
+      return true
+    else
+      return false
+    end
+  end
+
+  def default_languages
+    {
+        'Português' => 'pt',
+        'Inglês' => 'en',
+        'Espanhol' => 'es',
+        'Francês' => 'fr',
+        'Alemão' => 'de',
+        'Italiano'=> 'it',
+        'Mandarim' => 'zh',
+        'Russo' => 'ru',
+        'Japonês' => 'jp',
+        'Outro' => 'Outro'
+    }
+  end
 end
\ No newline at end of file