diff --git a/include/class.i18n.php b/include/class.i18n.php
index 05914f780e46eef877a8395db34bf63e40331fae..34e873ef93ee1a4e4131f629abc93c25932a2f44 100644
--- a/include/class.i18n.php
+++ b/include/class.i18n.php
@@ -29,8 +29,10 @@ class Internationalization {
         if ($cfg && ($lang = $cfg->getSystemLanguage()))
             array_unshift($this->langs, $language);
 
-        if ($language)
-            array_unshift($this->langs, $language);
+        // Detect language filesystem path, case insensitively
+        if ($language && ($info = self::getLanguageInfo($language))) {
+            array_unshift($this->langs, $info['code']);
+        }
     }
 
     function getTemplate($path) {
@@ -192,7 +194,7 @@ class Internationalization {
 
     static function getLanguageInfo($lang) {
         $langs = self::availableLanguages();
-        return @$langs[$lang] ?: array();
+        return @$langs[strtolower($lang)] ?: array();
     }
 
     static function availableLanguages($base=I18N_DIR) {