diff --git a/core/modules/forum/forum.test b/core/modules/forum/forum.test
index 4561092..759e1e9 100644
--- a/core/modules/forum/forum.test
+++ b/core/modules/forum/forum.test
@@ -646,6 +646,7 @@ class ForumIndexTestCase extends WebTestBase {
       'status' => FALSE,
     );
     $this->drupalPost("node/{$node->nid}/edit", $edit, t('Save'));
+    $this->drupalGet("node/{$node->nid}");
     $this->assertText(t('Access denied'), 'Unpublished node is no longer accessible.');
 
     // Verify that the node no longer appears on the index.
diff --git a/core/modules/node/node.pages.inc b/core/modules/node/node.pages.inc
index a43ff62..df23d8a 100644
--- a/core/modules/node/node.pages.inc
+++ b/core/modules/node/node.pages.inc
@@ -511,7 +511,7 @@ function node_form_submit($form, &$form_state) {
   if ($node->nid) {
     $form_state['values']['nid'] = $node->nid;
     $form_state['nid'] = $node->nid;
-    $form_state['redirect'] = 'node/' . $node->nid;
+    $form_state['redirect'] = node_access('view', $node) ? 'node/' . $node->nid : '<front>';
   }
   else {
     // In the unlikely case something went wrong on save, the node will be
diff --git a/core/modules/node/node.test b/core/modules/node/node.test
index 9188bad..2369cb5 100644
--- a/core/modules/node/node.test
+++ b/core/modules/node/node.test
@@ -573,6 +573,24 @@ class NodeCreationTestCase extends NodeWebTestCase {
     $records = db_query("SELECT wid FROM {watchdog} WHERE variables LIKE '%Test exception for rollback.%'")->fetchAll();
     $this->assertTrue(count($records) > 0, t('Rollback explanatory error logged to watchdog.'));
   }
+
+  /**
+   * Create an unpublished node and confirm correct redirect behavior.
+   */
+  function testUnpublishedNodeCreation() {
+    // Set "Basic page" content type to be unpublished by default.
+    variable_set('node_options_page', array());
+
+    // Create a node.
+    $edit = array();
+    $langcode = LANGUAGE_NOT_SPECIFIED;
+    $edit["title"] = $this->randomName(8);
+    $edit["body[$langcode][0][value]"] = $this->randomName(16);
+    $this->drupalPost('node/add/page', $edit, t('Save'));
+
+    // Check that the user was redirected to the home page.
+    $this->assertText(t('Welcome to Drupal'), t('The user is redirected to the home page.'));
+  }
 }
 
 class PageViewTestCase extends NodeWebTestCase {
