diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc
index 75ed0dd..3daf91d 100644
--- a/modules/node/node.pages.inc
+++ b/modules/node/node.pages.inc
@@ -393,7 +393,6 @@ function node_preview($node) {
 
     $node->changed = REQUEST_TIME;
     $nodes = array($node->nid => $node);
-    field_attach_prepare_view('node', $nodes, 'full');
 
     // Display a preview of the node.
     if (!form_get_errors()) {
diff --git a/modules/node/node.test b/modules/node/node.test
index b1d78fa..c98e6bb 100644
--- a/modules/node/node.test
+++ b/modules/node/node.test
@@ -457,10 +457,70 @@ class PagePreviewTestCase extends DrupalWebTestCase {
   }
 
   function setUp() {
-    parent::setUp();
+    parent::setUp(array('taxonomy', 'node'));
 
     $web_user = $this->drupalCreateUser(array('edit own page content', 'create page content'));
     $this->drupalLogin($web_user);
+
+    // Add a vocabulary so we can test different view modes.
+    $vocabulary = (object) array(
+      'name' => $this->randomName(),
+      'description' => $this->randomName(),
+      'machine_name' => drupal_strtolower($this->randomName()),
+      'help' => '',
+      'nodes' => array('page' => 'page'),
+    );
+    taxonomy_vocabulary_save($vocabulary);
+
+    $this->vocabulary = $vocabulary;
+
+    // Add a term to the vocabulary.
+    $term = (object)array(
+      'name' => $this->randomName(),
+      'description' => $this->randomName(),
+      // Use the first available text format.
+      'format' => db_query_range('SELECT format FROM {filter_format}', 0, 1)->fetchField(),
+      'vid' => $this->vocabulary->vid,
+      'vocabulary_machine_name' => $vocabulary->machine_name,
+    );
+    taxonomy_term_save($term);
+
+    $this->term = $term;
+
+    // Set up a field and instance.
+    $this->field_name = drupal_strtolower($this->randomName());
+    $this->field = array(
+      'field_name' => $this->field_name,
+      'type' => 'taxonomy_term_reference',
+      'settings' => array(
+        'allowed_values' => array(
+          array(
+            'vocabulary' => $this->vocabulary->machine_name,
+            'parent' => '0',
+          ),
+        ),
+      )
+    );
+
+    field_create_field($this->field);
+    $this->instance = array(
+      'field_name' => $this->field_name,
+      'entity_type' => 'node',
+      'bundle' => 'page',
+      'widget' => array(
+        'type' => 'options_select',
+      ),
+      // Hide on full display but render on teaser.
+      'display' => array(
+        'default' => array(
+          'type' => 'hidden',
+        ),
+        'teaser' => array(
+          'type' => 'taxonomy_term_reference_link',
+        ),
+      ),
+    );
+    field_create_instance($this->instance);
   }
 
   /**
@@ -470,21 +530,26 @@ class PagePreviewTestCase extends DrupalWebTestCase {
     $langcode = LANGUAGE_NONE;
     $title_key = "title";
     $body_key = "body[$langcode][0][value]";
+    $term_key = "{$this->field_name}[$langcode]";
 
     // Fill in node creation form and preview node.
     $edit = array();
     $edit[$title_key] = $this->randomName(8);
     $edit[$body_key] = $this->randomName(16);
+    $edit[$term_key] = $this->term->tid;
     $this->drupalPost('node/add/page', $edit, t('Preview'));
 
-    // Check that the preview is displaying the title and body.
+    // Check that the preview is displaying the title, body, and term.
     $this->assertTitle(t('Preview | Drupal'), 'Basic page title is preview.');
     $this->assertText($edit[$title_key], 'Title displayed.');
     $this->assertText($edit[$body_key], 'Body displayed.');
+    $this->assertText($edit[$term_key], 'Term displayed.');
 
-    // Check that the title and body fields are displayed with the correct values.
+    // Check that the title and body fields are displayed with the
+    // correct values.
     $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], 'Term field displayed.');
   }
 
   /**
@@ -494,6 +559,7 @@ class PagePreviewTestCase extends DrupalWebTestCase {
     $langcode = LANGUAGE_NONE;
     $title_key = "title";
     $body_key = "body[$langcode][0][value]";
+    $term_key = "{$this->field_name}[$langcode]";
     // Force revision on "Basic page" content.
     variable_set('node_options_page', array('status', 'revision'));
 
@@ -501,17 +567,20 @@ class PagePreviewTestCase extends DrupalWebTestCase {
     $edit = array();
     $edit[$title_key] = $this->randomName(8);
     $edit[$body_key] = $this->randomName(16);
+    $edit[$term_key] = $this->term->tid;
     $edit['log'] = $this->randomName(32);
     $this->drupalPost('node/add/page', $edit, t('Preview'));
 
-    // Check that the preview is displaying the title and body.
+    // Check that the preview is displaying the title, body, and term.
     $this->assertTitle(t('Preview | Drupal'), 'Basic page title is preview.');
     $this->assertText($edit[$title_key], 'Title displayed.');
     $this->assertText($edit[$body_key], 'Body displayed.');
+    $this->assertText($edit[$term_key], 'Term displayed.');
 
     // Check that the title and body fields are displayed with the correct values.
     $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], 'Term field displayed.');
 
     // Check that the log field has the correct value.
     $this->assertFieldByName('log', $edit['log'], 'Log field displayed.');
