Index: node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.410.2.6
diff -u -r1.410.2.6 node.module
--- node.module	24 Dec 2004 06:44:01 -0000	1.410.2.6
+++ node.module	13 Apr 2005 16:39:45 -0000
@@ -1091,11 +1091,22 @@
   else {
     // Validate for normal users:
     $node->uid = $user->uid ? $user->uid : 0;
-    // Force defaults in case people modify the form:
-    $node->status = variable_get("node_status_$node->type", 1);
-    $node->promote = variable_get("node_promote_$node->type", 1);
-    $node->moderate = variable_get("node_moderate_$node->type", 0);
-    $node->sticky = variable_get("node_sticky_$node->type", 0);
+
+    if (!$node->nid) {
+      // Force defaults in case people modify the form:
+      $node->status = variable_get("node_status_$node->type", 1);
+      $node->promote = variable_get("node_promote_$node->type", 1);
+      $node->moderate = variable_get("node_moderate_$node->type", 0);
+      $node->sticky = variable_get("node_sticky_$node->type", 0);
+    }
+    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 = variable_get("node_revision_$node->type", 0);
     unset($node->created);
   }
