diff --git a/core/lib/Drupal/Component/Gettext/PoStreamReader.php b/core/lib/Drupal/Component/Gettext/PoStreamReader.php
index 24e3936..fe28ba3 100644
--- a/core/lib/Drupal/Component/Gettext/PoStreamReader.php
+++ b/core/lib/Drupal/Component/Gettext/PoStreamReader.php
@@ -205,6 +205,13 @@ class PoStreamReader implements PoStreamInterface, PoReaderInterface {
   }
 
   /**
+   * returns formated errors
+   */
+  public function getErrors() {
+    return empty($this->_errors) ? '' : implode("<br />", $this->_errors);
+  }
+
+  /**
    * Sets the seek position for the current PO stream.
    *
    * @param int $seek
diff --git a/core/modules/locale/lib/Drupal/locale/Gettext.php b/core/modules/locale/lib/Drupal/locale/Gettext.php
index 9d3bfb8..a4401bf 100644
--- a/core/modules/locale/lib/Drupal/locale/Gettext.php
+++ b/core/modules/locale/lib/Drupal/locale/Gettext.php
@@ -121,6 +121,9 @@ class Gettext {
     // Report back with an array of status information.
     $report = $writer->getReport();
 
+    //get reader errors
+    $report['reader_report'] = $reader->getErrors();
+
     // Add the seek position to the report. This is useful for the batch
     // operation.
     $report['seek'] = $reader->getSeek();
diff --git a/core/modules/locale/locale.bulk.inc b/core/modules/locale/locale.bulk.inc
index 0581af4..6d8274a 100644
--- a/core/modules/locale/locale.bulk.inc
+++ b/core/modules/locale/locale.bulk.inc
@@ -480,6 +480,12 @@ function locale_translate_batch_import($filepath, $options, &$context) {
           }
           $context['results']['stats'][$filepath][$key] += $report[$key];
         }
+        else {
+          if (!isset($context['results']['stats'][$filepath][$key])) {
+            $context['results']['stats'][$filepath][$key] = '';
+          }
+          $context['results']['stats'][$filepath][$key] .= $report[$key];
+        }
       }
     }
     catch (Exception $exception) {
@@ -495,6 +501,7 @@ function locale_translate_batch_import($filepath, $options, &$context) {
 function locale_translate_batch_finished($success, $results) {
   if ($success) {
     $additions = $updates = $deletes = $skips = 0;
+    $reader_report = $reader_log = '';
     drupal_set_message(format_plural(count($results['files']), 'One translation file imported.', '@count translation files imported.'));
     $skipped_files = array();
     foreach ($results['stats'] as $filepath => $report) {
@@ -505,9 +512,14 @@ function locale_translate_batch_finished($success, $results) {
       if ($report['skips'] > 0) {
         $skipped_files[] = $filepath;
       }
+      $reader_report .= html_entity_decode($report['reader_report']);
     }
+
     drupal_set_message(t('The translation was successfully imported. There are %number newly created translated strings, %update strings were updated and %delete strings were removed.', array('%number' => $additions, '%update' => $updates, '%delete' => $deletes)));
-    watchdog('locale', 'The translation was succesfully imported. %number new strings added, %update updated and %delete removed.', array('%number' => $additions, '%update' => $updates, '%delete' => $deletes));
+    if (!empty($reader_report)) {
+      $reader_log = '<br />Po reader report:<br />!reader_report';
+    }
+    watchdog('locale', 'The translation was succesfully imported. %number new strings added, %update updated and %delete removed.' . $reader_log, array('%number' => $additions, '%update' => $updates, '%delete' => $deletes, '!reader_report' => $reader_report));
     if ($skips) {
       if (module_exists('dblog')) {
         $skip_message = format_plural($skips, 'A translation string was skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', '@count translation strings were skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', array('@url' => url('admin/reports/dblog')));
