diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeDeleteTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeDeleteTest.php
new file mode 100644
index 0000000..e4fb5b2
--- /dev/null
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeDeleteTest.php
@@ -0,0 +1,96 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\node\Tests\NodeDeleteTest.
+ */
+
+namespace Drupal\node\Tests;
+
+/**
+ * Tests the cache invalidation of node delete operations.
+ */
+class NodeDeleteTest extends NodeTestBase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Node delete cache invalidation',
+      'description' => 'Test cache invalidation when deleting nodes.',
+      'group' => 'Node',
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+
+    config('system.performance')->set('cache.page.enabled', 1)->save();
+
+    $this->nids = array(
+      $this->drupalCreateNode()->id(),
+      $this->drupalCreateNode()->id(),
+    );
+
+    $this->admin_user = $this->drupalCreateUser(array(
+      'bypass node access',
+      'access content overview',
+      'administer nodes',
+    ));
+  }
+
+  /**
+   * Tests deleting a node clears page cache.
+   */
+  function testNodeDelete() {
+    $node_path = 'node/' . $this->nids[0];
+
+    // View with anonymous user.
+    $this->drupalGet($node_path);
+    $this->assertResponse(200);
+
+    // Login and delete the node.
+    $this->drupalLogin($this->admin_user);
+    $this->drupalGet($node_path . '/delete');
+    $this->drupalPost(NULL, array(), t('Delete'));
+
+    // View with logged in user.
+    $this->drupalGet($node_path);
+    $this->assertResponse(404);
+
+    // View with logged out user.
+    $this->drupalLogout();
+    $this->drupalGet($node_path);
+    $this->assertResponse(404);
+  }
+
+  /**
+   * Tests deleting multiple nodes clears page cache.
+   */
+  function testNodeDeleteMultiple() {
+    $node_path = 'node/' . $this->nids[1];
+
+    // View with anonymous user.
+    $this->drupalGet($node_path);
+    $this->assertResponse(200);
+
+    // Login and delete nodes.
+    $this->drupalLogin($this->admin_user);
+    $this->drupalGet('admin/content');
+    $edit = array(
+      'operation' => 'delete',
+      'nodes[' . $this->nids[0] . ']' => 1,
+      'nodes[' . $this->nids[1] . ']' => 1,
+    );
+    $this->drupalPost(NULL, $edit, t('Update'));
+    $this->drupalPost(NULL, array(), t('Delete'));
+
+    // View with logged in user.
+    $this->drupalGet($node_path);
+    $this->assertResponse(404);
+
+    // View with logged out user.
+    $this->drupalLogout();
+    $this->drupalGet($node_path);
+    $this->assertResponse(404);
+  }
+
+}
diff --git a/core/modules/node/node.admin.inc b/core/modules/node/node.admin.inc
index 74f100c..c8befcb 100644
--- a/core/modules/node/node.admin.inc
+++ b/core/modules/node/node.admin.inc
@@ -695,6 +695,7 @@ function node_multiple_delete_confirm_submit($form, &$form_state) {
     $count = count($form_state['values']['nodes']);
     watchdog('content', 'Deleted @count posts.', array('@count' => $count));
     drupal_set_message(format_plural($count, 'Deleted 1 post.', 'Deleted @count posts.'));
+    cache_invalidate_tags(array('content' => TRUE));
   }
   $form_state['redirect'] = 'admin/content';
 }
diff --git a/core/modules/node/node.pages.inc b/core/modules/node/node.pages.inc
index 245fef7..7713dc2 100644
--- a/core/modules/node/node.pages.inc
+++ b/core/modules/node/node.pages.inc
@@ -227,6 +227,7 @@ function node_delete_confirm_submit($form, &$form_state) {
     node_delete($form_state['values']['nid']);
     watchdog('content', '@type: deleted %title.', array('@type' => $node->type, '%title' => $node->label()));
     drupal_set_message(t('@type %title has been deleted.', array('@type' => node_get_type_label($node), '%title' => $node->label())));
+    cache_invalidate_tags(array('content' => TRUE));
   }
 
   $form_state['redirect'] = '<front>';
