Index: modules/node/node.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v
retrieving revision 1.70
diff -u -r1.70 node.pages.inc
--- modules/node/node.pages.inc	22 Jun 2009 09:10:05 -0000	1.70
+++ modules/node/node.pages.inc	24 Jun 2009 02:31:56 -0000
@@ -112,6 +112,14 @@
   }
   if (isset($form_state['node_preview'])) {
     $form['#prefix'] = $form_state['node_preview'];
+    $form['preview_buttons'] = array();
+    $form['preview_buttons']['#weight'] = -10;
+    $form['preview_buttons']['preview_submit'] = array(
+      '#type' => 'submit',
+      '#access' => !form_get_errors(),
+      '#value' => t('Save'),
+      '#submit' => array('node_form_submit'),
+    );
   }
   $node = (object)$node;
   foreach (array('title') as $key) {
@@ -369,6 +377,8 @@
  * @ingroup themeable
  */
 function theme_node_preview($node) {
+  drupal_set_message(t('Your changes have not yet been saved. Take a look at the preview of your post and if you are satisfied, save the changes by clicking Save button.'), 'warning');
+
   $output = '<div class="preview">';
 
   $preview_trimmed_version = FALSE;
Index: modules/node/node.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.test,v
retrieving revision 1.33
diff -u -r1.33 node.test
--- modules/node/node.test	22 Jun 2009 09:10:05 -0000	1.33
+++ modules/node/node.test	24 Jun 2009 02:31:57 -0000
@@ -254,6 +254,9 @@
     $this->assertText($edit['title'], t('Title displayed.'));
     $this->assertText($edit[$body_key], t('Body displayed.'));
 
+    // Previewing should have its own, additional submit button.
+    $this->assertFieldById('edit-preview-submit', t('Save'), t("Preview's save button displayed."));
+
     // Check that the title and body fields are displayed with the correct values.
     $this->assertFieldByName('title', $edit['title'], t('Title field displayed.'));
     $this->assertFieldByName($body_key, $edit[$body_key], t('Body field displayed.'));
