Index: node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.486
diff -u -r1.486 node.module
--- node.module	11 Apr 2005 16:39:19 -0000	1.486
+++ node.module	13 Apr 2005 16:37:10 -0000
@@ -1254,12 +1254,24 @@
   else {
     // Validate for normal users:
     $node->uid = $user->uid ? $user->uid : 0;
-    // Force defaults in case people modify the form:
+
     $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));
-    $node->status = in_array('status', $node_options);
-    $node->moderate = in_array('moderate', $node_options);
-    $node->promote = in_array('promote', $node_options);
-    $node->sticky = in_array('sticky', $node_options);
+
+    if (!$node->nid) {
+      // Force defaults in case people modify the form:
+      $node->status = in_array('status', $node_options);
+      $node->moderate = in_array('moderate', $node_options);
+      $node->promote = in_array('promote', $node_options);
+      $node->sticky = in_array('sticky', $node_options);
+    }
+    else {
+      // If the node is being updated, respect is previous settings
+      unset($node->status);
+      unset($node->moderate);
+      unset($node->promote);
+      unset($node->sticky);
+    }
+
     $node->revision = in_array('revision', $node_options);
     unset($node->created);
   }
