diff --git a/modules/node/node.module b/modules/node/node.module
index 14cddb13aefe8278869fa820671c63a7a4d74d62..1df162468ff616b505058aba6b7fd360a6da83d3 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -2022,6 +2022,19 @@ function node_object_prepare(&$node) {
       $node->date = format_date($node->created, 'custom', 'Y-m-d H:i:s O');
     }
   }
+
+  $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));
+  // If this is a new node, fill in the default values.
+  if (!isset($node->nid)) {
+    foreach (array('status', 'promote', 'sticky') as $key) {
+      $node->$key = in_array($key, $node_options);
+    }
+    global $user;
+    $node->uid = $user->uid;
+  }
+  // Always use the default revision setting.
+  $node->revision = in_array('revision', $node_options);
+
   node_invoke($node, 'prepare');
   node_invoke_nodeapi($node, 'prepare');
 }
@@ -2067,18 +2080,6 @@ function node_form(&$form_state, $node) {
     $form['title']['#weight'] = -5;
   }
 
-  $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));
-  // If this is a new node, fill in the default values.
-  if (!isset($node->nid)) {
-    foreach (array('status', 'promote', 'sticky') as $key) {
-      $node->$key = in_array($key, $node_options);
-    }
-    global $user;
-    $node->uid = $user->uid;
-  }
-  // Always use the default revision setting.
-  $node->revision = in_array('revision', $node_options);
-
   $form['#node'] = $node;
 
   // Add a log field if the "Create new revision" option is checked, or if the