Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.967 diff -u -p -r1.967 node.module --- modules/node/node.module 26 May 2008 17:12:55 -0000 1.967 +++ modules/node/node.module 28 May 2008 05:46:36 -0000 @@ -888,13 +888,10 @@ function node_save(&$node) { node_invoke_nodeapi($node, 'presave'); global $user; - $node->is_new = FALSE; - - // Apply filters to some default node fields: - if (empty($node->nid)) { - // Insert a new node. - $node->is_new = TRUE; + // Insert a new node. + $node->is_new = empty($node->nid); + if ($node->is_new || !empty($node->revision)) { // When inserting a node, $node->log must be set because // {node_revisions}.log does not (and cannot) have a default // value. If the user does not have permission to create @@ -903,25 +900,26 @@ function node_save(&$node) { if (!isset($node->log)) { $node->log = ''; } + } + elseif (empty($node->log)) { + // When updating a node, however, avoid clobbering an existing + // log entry with an empty one. + unset($node->log); + } - // For the same reasons, make sure we have $node->teaser and - // $node->body. We should consider making these fields nullable - // in a future version since node types are not required to use them. - if (!isset($node->teaser)) { - $node->teaser = ''; - } - if (!isset($node->body)) { - $node->body = ''; - } + // For the same reasons, make sure we have $node->teaser and + // $node->body. We should consider making these fields nullable + // in a future version since node types are not required to use them. + if (!isset($node->teaser)) { + $node->teaser = ''; } - elseif (!empty($node->revision)) { - $node->old_vid = $node->vid; + if (!isset($node->body)) { + $node->body = ''; } - else { - // When updating a node, avoid clobberring an existing log entry with an empty one. - if (empty($node->log)) { - unset($node->log); - } + + // Save the old revision if needed. + if (!$node->is_new && !empty($node->revision) && $node->vid) { + $node->old_vid = $node->vid; } // Set some required fields: