diff --git a/core/modules/locale/locale.batch.inc b/core/modules/locale/locale.batch.inc
index 41679d9..3116738 100644
--- a/core/modules/locale/locale.batch.inc
+++ b/core/modules/locale/locale.batch.inc
@@ -156,7 +156,6 @@ function locale_translation_batch_status_compare(&$context) {
       }
     }
   }
-
   locale_translation_status_save($results);
 }
 
diff --git a/core/modules/locale/tests/modules/locale_test/locale_test.module b/core/modules/locale/tests/modules/locale_test/locale_test.module
index 8f87ddc..701a899 100644
--- a/core/modules/locale/tests/modules/locale_test/locale_test.module
+++ b/core/modules/locale/tests/modules/locale_test/locale_test.module
@@ -113,7 +113,7 @@ function locale_test_locale_translation_projects_alter(&$projects) {
         'info' => array (
           'name' => 'Locale test',
           'interface translation project' => 'locale_test',
-          'interface translation server pattern' => 'core/modules/locale/tests/test.%language.po',
+          'interface translation server pattern' => 'core/modules/locale/tests/translations/test.%language.po',
           'package' => 'Other',
           'version' => NULL,
           'project' => 'locale_test',
diff --git a/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.info b/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.info
new file mode 100644
index 0000000..61da603
--- /dev/null
+++ b/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.info
@@ -0,0 +1,8 @@
+name = Contributed module one
+project = locale_test_contrib_one
+description = Translation test module mocking a contributed module with translation files on remote and local file locations.
+package = Testing
+version = 8.x-1.1
+core = 8.x
+;;hidden = TRUE
+dependencies[] = locale
diff --git a/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.install b/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.install
new file mode 100644
index 0000000..a1803d2
--- /dev/null
+++ b/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.install
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @file
+ * Sets up po files and translation directory.
+ */
+
+/**
+ * Implements hook_install().
+ *
+ * This sets up the translation files for this module. A remote po file is
+ * supplied. The extension of the remote translation file is unusual. '_po' is
+ * used instead of the common 'po' because 'po' would blocked by Drupal's
+ * .htaccess and the remote file is served over http. The local file is directly
+ * retrieved by php and can therefore have the regular 'po' extension.
+ *
+ * The remote po file is set with an 'old' timestamp.
+ * The local po file is set with an 'new' timestamp.
+ */
+function locale_test_contrib_one_install() {
+  if ($translate_directory = variable_get('locale_translate_file_directory', conf_path() . '/files/translations')) {
+    // If an interface translations directory is configured, create it if it
+    // does not exist yet.
+    if (!is_dir($translate_directory)) {
+      file_prepare_directory($translate_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
+    }
+
+    if (is_dir($translate_directory)) {
+      // Create a local po file by copying the remote version.
+      $remote_uri = 'core/modules/locale/tests/translations/8.x/locale_test_contrib_one/locale_test_contrib_one-8.x-1.1.de._po';
+      $local_uri = $translate_directory . '/locale_test_contrib_one-8.x-1.1.de.po';
+      file_unmanaged_copy($remote_uri, $local_uri, FILE_EXISTS_REPLACE);
+
+      // Set the timestamp of the local po file.
+      $timestamp_old = REQUEST_TIME - 300;
+      touch(drupal_realpath($local_uri), $timestamp_old);
+    }
+  }
+
+  // Set the timestamp of the remote po file.
+  $timestamp_new = REQUEST_TIME - 100;
+  touch(drupal_realpath($remote_uri), $timestamp_new);
+}
diff --git a/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.module b/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.module
new file mode 100644
index 0000000..291dda1
--- /dev/null
+++ b/core/modules/locale/tests/modules/locale_test_contrib_one/locale_test_contrib_one.module
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * @file
+ * Mocks a custom module with local and remote po files.
+ */
+
+/**
+ * Implements hook_locale_translation_projects_alter().
+ *
+ * The po file supplied with the module is used as mock remote po file. Because
+ * the interface translation server pattern contains the host name of this site
+ * it is defined here and not in the .info file.
+ */
+function locale_test_contrib_one_locale_translation_projects_alter(&$projects) {
+  $url = url(NULL, array('absolute' => TRUE)) . 'core/modules/locale/tests/translations';
+
+  // Set the server URL and pattern to where the remote po file for this module
+  // can be found.
+  if (isset($projects['locale_test_contrib_one'])) {
+    $projects['locale_test_contrib_one']['info']['interface translation server pattern'] = $url . '/%core/%project/%project-%version.%language._po';
+  }
+}
diff --git a/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info b/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info
index 32dcd52..2c1c765 100644
--- a/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info
+++ b/core/modules/locale/tests/modules/locale_test_translate/locale_test_translate.info
@@ -7,4 +7,4 @@ hidden = TRUE
 
 ; Definitions for interface translations.
 interface translation project = locale_test_translate
-interface translation server pattern = core/modules/locale/tests/test.%language.po
+interface translation server pattern = core/modules/locale/tests/translations/test.%language.po
diff --git a/core/modules/locale/tests/test.de.po b/core/modules/locale/tests/test.de.po
deleted file mode 100644
index 85e2841..0000000
--- a/core/modules/locale/tests/test.de.po
+++ /dev/null
@@ -1,28 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Drupal 7\\n"
-"MIME-Version: 1.0\\n"
-"Content-Type: text/plain; charset=UTF-8\\n"
-"Content-Transfer-Encoding: 8bit\\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\\n"
-
-msgid "Monday"
-msgstr "Montag"
-
-msgid "Tuesday"
-msgstr "Dienstag"
-
-msgid "Wednesday"
-msgstr "Mittwoch"
-
-msgid "Thursday"
-msgstr "Donnerstag"
-
-msgid "Friday"
-msgstr "Freitag"
-
-msgid "Saturday"
-msgstr "Samstag"
-
-msgid "Sunday"
-msgstr "Sonntag"
diff --git a/core/modules/locale/tests/test.nl.po b/core/modules/locale/tests/test.nl.po
deleted file mode 100644
index 2e956c1..0000000
--- a/core/modules/locale/tests/test.nl.po
+++ /dev/null
@@ -1,31 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Drupal 7\\n"
-"MIME-Version: 1.0\\n"
-"Content-Type: text/plain; charset=UTF-8\\n"
-"Content-Transfer-Encoding: 8bit\\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\\n"
-
-msgid "Monday"
-msgstr "maandag"
-
-msgid "Tuesday"
-msgstr "dinsdag"
-
-msgid "Wednesday"
-msgstr "woensdag"
-
-msgid "Thursday"
-msgstr "donderdag"
-
-msgid "Extraday"
-msgstr "extra dag"
-
-msgid "Friday"
-msgstr "vrijdag"
-
-msgid "Saturday"
-msgstr "zaterdag"
-
-msgid "Sunday"
-msgstr "zondag"
diff --git a/core/modules/locale/tests/test.xx.po b/core/modules/locale/tests/test.xx.po
deleted file mode 100644
index e2db1d3..0000000
--- a/core/modules/locale/tests/test.xx.po
+++ /dev/null
@@ -1,40 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Drupal 7\\n"
-"MIME-Version: 1.0\\n"
-"Content-Type: text/plain; charset=UTF-8\\n"
-"Content-Transfer-Encoding: 8bit\\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\\n"
-
-msgid "Monday"
-msgstr "lundi"
-
-msgid "Tuesday"
-msgstr "mardi"
-
-msgid "Wednesday"
-msgstr "mercredi"
-
-msgid "Thursday"
-msgstr "jeudi"
-
-msgid "Friday"
-msgstr "vendredi"
-
-msgid "Saturday"
-msgstr "samedi"
-
-msgid "Sunday"
-msgstr "dimanche"
-
-msgid "Allowed HTML source string"
-msgstr "<strong>Allowed HTML translation string</strong>"
-
-msgid "Another allowed HTML source string"
-msgstr "<script>Disallowed HTML translation string</script>"
-
-msgid "Source string for multiline translation"
-msgstr ""
-"Multiline translation string "
-"to make sure that "
-"import works with it."
diff --git a/core/modules/locale/tests/translations/test.de.po b/core/modules/locale/tests/translations/test.de.po
new file mode 100644
index 0000000..85e2841
--- /dev/null
+++ b/core/modules/locale/tests/translations/test.de.po
@@ -0,0 +1,28 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 7\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\\n"
+
+msgid "Monday"
+msgstr "Montag"
+
+msgid "Tuesday"
+msgstr "Dienstag"
+
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+msgid "Thursday"
+msgstr "Donnerstag"
+
+msgid "Friday"
+msgstr "Freitag"
+
+msgid "Saturday"
+msgstr "Samstag"
+
+msgid "Sunday"
+msgstr "Sonntag"
diff --git a/core/modules/locale/tests/translations/test.nl.po b/core/modules/locale/tests/translations/test.nl.po
new file mode 100644
index 0000000..2e956c1
--- /dev/null
+++ b/core/modules/locale/tests/translations/test.nl.po
@@ -0,0 +1,31 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 7\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\\n"
+
+msgid "Monday"
+msgstr "maandag"
+
+msgid "Tuesday"
+msgstr "dinsdag"
+
+msgid "Wednesday"
+msgstr "woensdag"
+
+msgid "Thursday"
+msgstr "donderdag"
+
+msgid "Extraday"
+msgstr "extra dag"
+
+msgid "Friday"
+msgstr "vrijdag"
+
+msgid "Saturday"
+msgstr "zaterdag"
+
+msgid "Sunday"
+msgstr "zondag"
diff --git a/core/modules/locale/tests/translations/test.xx.po b/core/modules/locale/tests/translations/test.xx.po
new file mode 100644
index 0000000..e2db1d3
--- /dev/null
+++ b/core/modules/locale/tests/translations/test.xx.po
@@ -0,0 +1,40 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal 7\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\\n"
+
+msgid "Monday"
+msgstr "lundi"
+
+msgid "Tuesday"
+msgstr "mardi"
+
+msgid "Wednesday"
+msgstr "mercredi"
+
+msgid "Thursday"
+msgstr "jeudi"
+
+msgid "Friday"
+msgstr "vendredi"
+
+msgid "Saturday"
+msgstr "samedi"
+
+msgid "Sunday"
+msgstr "dimanche"
+
+msgid "Allowed HTML source string"
+msgstr "<strong>Allowed HTML translation string</strong>"
+
+msgid "Another allowed HTML source string"
+msgstr "<script>Disallowed HTML translation string</script>"
+
+msgid "Source string for multiline translation"
+msgstr ""
+"Multiline translation string "
+"to make sure that "
+"import works with it."
