diff --git a/include/client/header.inc.php b/include/client/header.inc.php
index ac28febfb7bc83b706cf1e5b4c7bacbea2b3d44b..7d7652f5e9ff983d2ce9f9017e8e88a22f17b0ed 100644
--- a/include/client/header.inc.php
+++ b/include/client/header.inc.php
@@ -85,11 +85,14 @@ if (($lang = Internationalization::getCurrentLanguage())
 if (($all_langs = Internationalization::getConfiguredSystemLanguages())
     && (count($all_langs) > 1)
 ) {
+    $qs = array();
+    parse_str($_SERVER['QUERY_STRING'], $qs);
     foreach ($all_langs as $code=>$info) {
         list($lang, $locale) = explode('_', $code);
+        $qs['lang'] = $code;
 ?>
         <a class="flag flag-<?php echo strtolower($locale ?: $info['flag'] ?: $lang); ?>"
-            href="?<?php echo urlencode($_GET['QUERY_STRING']); ?>&amp;lang=<?php echo $code;
+            href="?<?php echo http_build_query($qs);
             ?>" title="<?php echo Internationalization::getLanguageDescription($code); ?>">&nbsp;</a>
 <?php }
 } ?>
diff --git a/include/staff/footer.inc.php b/include/staff/footer.inc.php
index 12c9b034dfe457bd9ff7dbff974b754250858de8..2c0c45eb0d6b76c73317d26612dde1371ea68e63 100644
--- a/include/staff/footer.inc.php
+++ b/include/staff/footer.inc.php
@@ -51,7 +51,9 @@ if ($.support.pjax) {
 }
 </script>
 <?php
-if ($thisstaff && $thisstaff->getLanguage() != 'en_US') { ?>
+if ($thisstaff
+        && ($lang = $thisstaff->getLanguage())
+        && 0 !== strcasecmp($lang, 'en_US')) { ?>
     <script type="text/javascript" src="ajax.php/i18n/<?php
         echo $thisstaff->getLanguage(); ?>/js"></script>
 <?php } ?>