diff --git a/src/transformer/utils/get_course_lang.php b/src/transformer/utils/get_course_lang.php
index c12936a3ec6346e9556408658f6329480bef13e3..43a5a1e5f7e934ce4fff527cc69266e025179a17 100644
--- a/src/transformer/utils/get_course_lang.php
+++ b/src/transformer/utils/get_course_lang.php
@@ -19,5 +19,10 @@ defined('MOODLE_INTERNAL') || die();
 
 function get_course_lang($course) {
     $haslang = is_null($course->lang) || $course->lang == '';
-    return $haslang ? 'en' : $course->lang;
+
+    // Ensure en_US and the like get corrected to the standard en-US.
+    $preppedlang = mb_ereg_replace('_', '-', $haslang ? 'en' : $course->lang);
+
+    // Ensure valid language format.
+    return mb_ereg_match('^[a-zA-Z]{2}(-[a-zA-Z]{2})?$', $preppedlang) ? $preppedlang : 'en';
 }