diff --git a/core/modules/node/src/NodeForm.php b/core/modules/node/src/NodeForm.php
index 162ba1b..3b01308 100644
--- a/core/modules/node/src/NodeForm.php
+++ b/core/modules/node/src/NodeForm.php
@@ -83,17 +83,15 @@ public function form(array $form, FormStateInterface $form_state) {
 
     if ($preview = $store->get($uuid)) {
       /** @var $preview \Drupal\Core\Form\FormStateInterface */
-      $form_state = $preview;
+      $form_state->setFormState($preview->getCacheableArray());
 
       // Rebuild the form.
       $form_state->setRebuild();
       $this->entity = $preview->getFormObject()->getEntity();
       $this->entity->in_preview = NULL;
 
-      // Remove the stale temp store entry for existing nodes.
-      if (!$this->entity->isNew()) {
-        $store->delete($uuid);
-      }
+      // Remove the stale temp store entry.
+      $store->delete($uuid);
 
       $this->hasBeenPreviewed = TRUE;
     }
diff --git a/core/modules/node/src/Tests/PagePreviewTest.php b/core/modules/node/src/Tests/PagePreviewTest.php
index 44a280f..2975954 100644
--- a/core/modules/node/src/Tests/PagePreviewTest.php
+++ b/core/modules/node/src/Tests/PagePreviewTest.php
@@ -12,6 +12,9 @@
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\entity_reference\Tests\EntityReferenceTestTrait;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\field_ui\Tests\FieldUiTestTrait;
 use Drupal\node\Entity\NodeType;
 
 /**
@@ -29,7 +32,7 @@ class PagePreviewTest extends NodeTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'taxonomy', 'comment');
+  public static $modules = array('node', 'taxonomy', 'comment', 'text');
 
   /**
    * The name of the created field.
@@ -95,6 +98,28 @@ protected function setUp() {
         'type' => 'entity_reference_label',
       ))
       ->save();
+
+    // Create a multi-value text field.
+    $field_storage = FieldStorageConfig::create([
+      'field_name' => 'field_test_multi',
+      'entity_type' => 'node',
+      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
+      'type' => 'text',
+      'settings' => [
+        'max_length' => 50,
+      ]
+    ]);
+    $field_storage->save();
+    FieldConfig::create([
+      'field_storage' => $field_storage,
+      'bundle' => 'page',
+    ])->save();
+    entity_get_form_display('node', 'page', 'default')
+      ->setComponent('field_test_multi', array(
+        'type' => 'text_textfield',
+      ))
+      ->save();
+
   }
 
   /**
@@ -141,6 +166,10 @@ function testPagePreview() {
     $this->assertFieldByName($title_key, $edit[$title_key], 'Title field displayed.');
     $this->assertFieldByName($body_key, $edit[$body_key], 'Body field displayed.');
     $this->assertFieldByName($term_key, $edit[$term_key] . ' (' . $this->term->id() . ')', 'Term field displayed.');
+    // Assert additional values can be added.
+    $this->drupalPostAjaxForm(NULL, array(), array('field_test_multi_add_more' => t('Add another item')), NULL, array(), array(), 'node-page-form');
+    $this->assertFieldByName('field_test_multi[0][value]');
+    $this->assertFieldByName('field_test_multi[1][value]');
 
     // Return to page preview to check everything is as expected.
     $this->drupalPostForm(NULL, array(), t('Preview'));
