What does `drupal_clone($node)` do in Drupal? Will it clone a node? I know the node will be saved only if `node_save($clone)` is rendered. So what will happen when `drupal_clone($node)` is rendered ? /** * Generate a node preview. */ function node_preview($node) { if (node_access('create', $node) || node_access('update', $node)) { // Load the user's name when needed. if (isset($node->name)) { // The use of isset() is mandatory in the context of user IDs, because // user ID 0 denotes the anonymous user. if ($user = user_load(array('name' => $node->name))) { $node->uid = $user->uid; $node->picture = $user->picture; } else { $node->uid = 0; // anonymous user } } else if ($node->uid) { $user = user_load(array('uid' => $node->uid)); $node->name = $user->name; $node->picture = $user->picture; } $node->changed = time(); // Extract a teaser, if it hasn't been set (e.g. by a module-provided // 'teaser' form item). if (!isset($node->teaser)) { $node->teaser = empty($node->body) ? '' : node_teaser($node->body, $node->format); // Chop off the teaser from the body if needed. if (!$node->teaser_include && $node->teaser == substr($node->body, 0, strlen($node->teaser))) { $node->body = substr($node->body, strlen($node->teaser)); } } // Display a preview of the node. // Previewing alters $node so it needs to be cloned. if (!form_get_errors()) { $cloned_node = drupal_clone($node); $cloned_node->build_mode = NODE_BUILD_PREVIEW; $output = theme('node_preview', $cloned_node); } drupal_set_title(t('Preview')); return $output; } } **Real Issue** ============= I am getting the node cloned when clicking the preview button. Is it related to any code changes?