diff --git a/includes/locale.inc b/includes/locale.inc
index c7f9583..7369453 100644
--- a/includes/locale.inc
+++ b/includes/locale.inc
@@ -2134,8 +2134,15 @@ function _locale_translate_language_list($string, $limit_language) {
   // list. The source language is English for built-in strings and the default
   // language for other strings.
   $languages = language_list();
-  $default = language_default();
-  $omit = $string['group'] == 'default' ? 'en' : $default->language;
+  // The i18n module allows you to set the source language. If i18n_string
+  // is installed, check if the source language has been set.
+  if (module_exists('i18n_string')) {
+    $default = i18n_string_source_language();
+  }
+  else {
+    $default = language_default()->language;
+  }
+  $omit = $string['group'] == 'default' ? 'en' : $default;
   unset($languages[$omit]);
   $output = '';
   foreach ($languages as $langcode => $language) {
