diff --git a/core/modules/book/book.module b/core/modules/book/book.module
index a29a331..05b1fb8 100644
--- a/core/modules/book/book.module
+++ b/core/modules/book/book.module
@@ -955,7 +955,7 @@ function book_node_insert($node) {
  * Implements hook_node_update().
  */
 function book_node_update($node) {
-  if (!empty($node->book['bid'])) {
+  if (!empty($node->is_live) && !empty($node->book['bid'])) {
     if ($node->book['bid'] == 'new') {
       // New nodes that are their own book.
       $node->book['bid'] = $node->nid;
diff --git a/core/modules/forum/forum.module b/core/modules/forum/forum.module
index be77a49..a057be2 100644
--- a/core/modules/forum/forum.module
+++ b/core/modules/forum/forum.module
@@ -342,7 +342,7 @@ function forum_node_presave($node) {
  * Implements hook_node_update().
  */
 function forum_node_update($node) {
-  if (_forum_node_check_node_type($node)) {
+  if (!empty($node->is_live) && _forum_node_check_node_type($node)) {
     if (empty($node->revision) && db_query('SELECT tid FROM {forum} WHERE nid=:nid', array(':nid' => $node->nid))->fetchField()) {
       if (!empty($node->forum_tid)) {
         db_update('forum')
diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module
index e44d57d..d5b56ba 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu/menu.module
@@ -517,7 +517,9 @@ function menu_node_insert($node) {
  * Implements hook_node_update().
  */
 function menu_node_update($node) {
-  menu_node_save($node);
+  if (!empty($node->is_live)) {
+    menu_node_save($node);
+  }
 }
 
 /**
diff --git a/core/modules/path/path.module b/core/modules/path/path.module
index 10eb127..b29e013 100644
--- a/core/modules/path/path.module
+++ b/core/modules/path/path.module
@@ -203,7 +203,8 @@ function path_node_insert($node) {
  * Implements hook_node_update().
  */
 function path_node_update($node) {
-  if (isset($node->path)) {
+
+  if (isset($node->path) && !empty($node->is_live)) {
     $path = $node->path;
     $path['alias'] = trim($path['alias']);
     // Delete old alias if user erased it.
diff --git a/core/modules/search/search.module b/core/modules/search/search.module
index 587ef43..c03176e 100644
--- a/core/modules/search/search.module
+++ b/core/modules/search/search.module
@@ -814,9 +814,12 @@ function search_node_update_index($node) {
  * Implements hook_node_update().
  */
 function search_node_update($node) {
-  // Reindex the node when it is updated. The node is automatically indexed
-  // when it is added, simply by being added to the node table.
-  search_touch_node($node->nid);
+
+  if (!empty($node->is_live)) {
+    // Reindex the node when it is updated. The node is automatically indexed
+    // when it is added, simply by being added to the node table.
+    search_touch_node($node->nid);
+  }
 }
 
 /**
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index 0bd31ef..802b750 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -1621,9 +1621,11 @@ function taxonomy_build_node_index($node) {
  * Implements hook_node_update().
  */
 function taxonomy_node_update($node) {
-  // Always rebuild the node's taxonomy index entries on node save.
-  taxonomy_delete_node_index($node);
-  taxonomy_build_node_index($node);
+  if (!empty($node->is_live)) {
+    // Always rebuild the node's taxonomy index entries on node save.
+    taxonomy_delete_node_index($node);
+    taxonomy_build_node_index($node);
+  }
 }
 
 /**
diff --git a/core/modules/tracker/tracker.module b/core/modules/tracker/tracker.module
index a5887f2..4fe3cae 100644
--- a/core/modules/tracker/tracker.module
+++ b/core/modules/tracker/tracker.module
@@ -200,7 +200,9 @@ function tracker_node_insert($node, $arg = 0) {
  * Adds tracking information for this node since it's been updated.
  */
 function tracker_node_update($node, $arg = 0) {
-  _tracker_add($node->nid, $node->uid, $node->changed);
+  if (!empty($node->is_live)) {
+    _tracker_add($node->nid, $node->uid, $node->changed);
+  }
 }
 
 /**
