diff --git a/modules/locale/locale.module b/modules/locale/locale.module
index 03e4fbfa0e1c23fcaf6bfceab9eb9b89d3e7a4a7..95d1fe9d395c921efd9e42f130906ddb6f5b6ce8 100644
--- a/modules/locale/locale.module
+++ b/modules/locale/locale.module
@@ -501,7 +501,7 @@ function _locale_batch_import($filepath, &$context) {
   include_once 'includes/locale.inc';
   // The filename is either {langcode}.po or {prefix}.{langcode}.po, so
   // we can extract the language code to use for the import from the end.
-  if (preg_match('!(/|\.)([^\.]+)\.po$!', $filepath, $langcode)) {
+  if (preg_match('!(/|\.)([^\./]+)\.po$!', $filepath, $langcode)) {
     $file = (object) array('filename' => basename($filepath), 'filepath' => $filepath);
     _locale_import_read_po('db-store', $file, LOCALE_IMPORT_KEEP, $langcode[2]);
     $context['results'][] = $filepath;