diff --git a/core/lib/Drupal/Core/Entity/DatabaseStorageController.php b/core/lib/Drupal/Core/Entity/DatabaseStorageController.php
index df83610..b07a0e9 100644
--- a/core/lib/Drupal/Core/Entity/DatabaseStorageController.php
+++ b/core/lib/Drupal/Core/Entity/DatabaseStorageController.php
@@ -648,7 +648,8 @@ protected function doSaveFieldItems(EntityInterface $entity, $update) {
       $query = $this->database->insert($table_name)->fields($columns);
       $revision_query = $this->database->insert($revision_name)->fields($columns);
 
-      foreach ($entity->getTranslationLanguages() as $langcode => $language) {
+      $langcodes = $field['translatable'] ? array_keys($entity->getTranslationLanguages()) : array(Language::LANGCODE_NOT_SPECIFIED);
+      foreach ($langcodes as $langcode) {
         $items = $entity->getTranslation($langcode)->{$field_name}->getValue();
         if (!isset($items)) {
           continue;
@@ -662,7 +663,7 @@ protected function doSaveFieldItems(EntityInterface $entity, $update) {
             'revision_id' => $vid,
             'bundle' => $bundle,
             'delta' => $delta,
-            'langcode' => $field['translatable'] ? $langcode : Language::LANGCODE_NOT_SPECIFIED,
+            'langcode' => $langcode,
           );
           foreach ($field['columns'] as $column => $attributes) {
             $column_name = static::_fieldColumnName($field, $column);
