Index: modules/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.541
diff -u -F^f -r1.541 node.module
--- modules/node.module	26 Oct 2005 14:49:59 -0000	1.541
+++ modules/node.module	28 Oct 2005 00:17:33 -0000
@@ -1608,13 +1608,7 @@ function node_form($node) {
   $form['type']    = array('#type' => 'value', '#value' => $node->type);
 
   // Get the node-specific bits.
-  // We can't use node_invoke() because $param must be passed by reference.
-  $function = node_get_base($node) .'_form';
-  $param = array();
-  if (function_exists($function)) {
-    $node_form = $function($node, $param);
-    $form = array_merge($form, $function($node, $param));
-  }
+  $form = array_merge($form, node_invoke($node, 'form'));
 
   /**
    * Node author information
@@ -1772,7 +1766,9 @@ function node_preview($node) {
     // Display a preview of the node:
     // Previewing alters $node so it needs to be cloned.
     if (!form_get_errors()) {
-      $output = theme('node_preview', drupal_clone($node));
+      $cloned_node = drupal_clone($node);
+      $cloned_node->in_preview = TRUE;
+      $output = theme('node_preview', $cloned_node);
     }
     drupal_set_title(t('Preview'));
     drupal_set_breadcrumb(array(l(t('Home'), NULL), l(t('create content'), 'node/add'), l(t('Submit %name', array('%name' => node_get_name($node))), 'node/add/'. $node->type)));
