Index: modules/node/node.module =================================================================== --- modules/node/node.module (revision 15260) +++ modules/node/node.module (working copy) @@ -2368,12 +2368,10 @@ */ function node_delete($nid) { - $node = node_load($nid); + // do not cache the node to save memory on mass deletions + $node = node_load($nid, NULL, TRUE); if (node_access('delete', $node)) { - db_query('DELETE FROM {node} WHERE nid = %d', $node->nid); - db_query('DELETE FROM {node_revisions} WHERE nid = %d', $node->nid); - // Call the node-specific callback (if any): node_invoke($node, 'delete'); node_invoke_nodeapi($node, 'delete'); @@ -2385,6 +2383,11 @@ if (function_exists('search_wipe')) { search_wipe($node->nid, 'node'); } + + // Last step: Delete node and it's revisionfrom database + db_query('DELETE FROM {node_revisions} WHERE nid = %d', $node->nid); + db_query('DELETE FROM {node} WHERE nid = %d', $node->nid); + drupal_set_message(t('%title has been deleted.', array('%title' => $node->title))); watchdog('content', t('@type: deleted %title.', array('@type' => t($node->type), '%title' => $node->title))); }