diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index a11e77b..8563de4 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -1160,10 +1160,21 @@ function install_find_translations() {
 
 /**
  * Find installer translations either for a specific langcode or all languages.
+ *
+ * @param $langcode
+ *   (optional) The language code corresponding to the language for which we
+ *   want to find translation files. If omitted, information on all available
+ *   files will be returned.
+ *
+ * @return
+ *   An associative array of file information objects keyed by file URIs as
+ *   returned by file_scan_directory().
+ *
+ * @see file_scan_directory()
  */
 function install_find_translation_files($langcode = NULL) {
   $directory = variable_get('locale_translate_file_directory', conf_path() . '/files/translations');
-  $files = file_scan_directory($directory, '!install\.' . (!empty($langcode) ? '\.' . preg_quote($langcode, '!') : '[^\.]+') . '\.po$!', array('recurse' => FALSE));
+  $files = file_scan_directory($directory, '!install\.' . (!empty($langcode) ? preg_quote($langcode, '!') : '[^\.]+') . '\.po$!', array('recurse' => FALSE));
   return $files;
 }
 
diff --git a/core/modules/simpletest/files/translations/install.de.po b/core/modules/simpletest/files/translations/install.de.po
new file mode 100644
index 0000000..e69de29
diff --git a/core/modules/simpletest/files/translations/install.hu.po b/core/modules/simpletest/files/translations/install.hu.po
new file mode 100644
index 0000000..e69de29
diff --git a/core/modules/simpletest/simpletest.info b/core/modules/simpletest/simpletest.info
index fab7b5e..ef4f07b7 100644
--- a/core/modules/simpletest/simpletest.info
+++ b/core/modules/simpletest/simpletest.info
@@ -20,6 +20,7 @@ files[] = tests/file.test
 files[] = tests/filetransfer.test
 files[] = tests/form.test
 files[] = tests/graph.test
+files[] = tests/installer.test
 files[] = tests/image.test
 files[] = tests/lock.test
 files[] = tests/mail.test
diff --git a/core/modules/simpletest/tests/installer.test b/core/modules/simpletest/tests/installer.test
new file mode 100644
index 0000000..78d277b
--- /dev/null
+++ b/core/modules/simpletest/tests/installer.test
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @file
+ * Tests for the installer.
+ */
+
+class InstallerLanguageTestCase extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Installer tests',
+      'description' => 'Unit tests for the installer.',
+      'group' => 'Installer',
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+    variable_set('locale_translate_file_directory', drupal_get_path('module', 'simpletest') . '/files/translations');
+  }
+
+  /**
+   * Check whether translation files are found for the installer.
+   */
+  function testInstallerTranslationFiles() {
+    include_once DRUPAL_ROOT . '/core/includes/install.core.inc';
+
+    // Different translation files would be found depending on which language
+    // we are looking for.
+    $expected_translation_files = array(
+      NULL => array('install.hu.po', 'install.de.po'),
+      'de' => array('install.de.po'),
+      'hu' => array('install.hu.po'),
+      'it' => array(),
+    );
+
+    foreach ($expected_translation_files as $langcode => $files_expected) {
+      $files_found = install_find_translation_files($langcode);
+      $this->assertTrue(count($files_found) == count($files_expected), t('@count installer languages found.', array('@count' => count($files_expected))));
+      foreach ($files_found as $file) {
+        $this->assertTrue(in_array($file->filename, $files_expected), t('@file found.', array('@file' => $file->filename)));
+      }
+    }
+  }
+
+}
