diff --git a/modules/node.module b/modules/node.module
index 9bdb61f3921..364e865677a 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -1584,11 +1584,9 @@ function node_submit($node) {
     $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);
-    $node->revision = in_array('revision', $node_options);
+    foreach (array('status', 'moderate', 'promote', 'sticky', 'revision') as $key) {
+      $node->$key = in_array($key, $node_options);
+    }
     unset($node->created);
   }
 
@@ -1710,7 +1708,11 @@ function node_form_array($node) {
       $form['options'][$key] = array('#type' => 'value', '#value' => $node->$key);
     }
   }
-  $form['#node']   = $node;
+  else {
+    // Nodes being edited should always be preset with the default revision setting.
+    $node->revision = in_array('revision', $node_options);
+  }
+  $form['#node'] = $node;
 
   if (user_access('administer nodes')) {
     // Node author information
diff --git a/modules/node/node.module b/modules/node/node.module
index 9bdb61f3921..364e865677a 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1584,11 +1584,9 @@ function node_submit($node) {
     $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);
-    $node->revision = in_array('revision', $node_options);
+    foreach (array('status', 'moderate', 'promote', 'sticky', 'revision') as $key) {
+      $node->$key = in_array($key, $node_options);
+    }
     unset($node->created);
   }
 
@@ -1710,7 +1708,11 @@ function node_form_array($node) {
       $form['options'][$key] = array('#type' => 'value', '#value' => $node->$key);
     }
   }
-  $form['#node']   = $node;
+  else {
+    // Nodes being edited should always be preset with the default revision setting.
+    $node->revision = in_array('revision', $node_options);
+  }
+  $form['#node'] = $node;
 
   if (user_access('administer nodes')) {
     // Node author information