diff --git a/modules/blog.module b/modules/blog.module
index 21d21cf6623398140f06ae9d687abd9d72ffd16b..c622f4f7f30ad97cd3b7239c8633e06cce1216f3 100644
--- a/modules/blog.module
+++ b/modules/blog.module
@@ -48,7 +48,12 @@ function blog_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    if (user_access("adminster nodes")) {
+      return array();
+    }
+    else {
+      return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/blog/blog.module b/modules/blog/blog.module
index 21d21cf6623398140f06ae9d687abd9d72ffd16b..c622f4f7f30ad97cd3b7239c8633e06cce1216f3 100644
--- a/modules/blog/blog.module
+++ b/modules/blog/blog.module
@@ -48,7 +48,12 @@ function blog_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    if (user_access("adminster nodes")) {
+      return array();
+    }
+    else {
+      return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/book.module b/modules/book.module
index 30d50d8d7065dfee107de8a13066e7594b6bdc75..9c486fe6e6fa508cab6ab34cf08495182d685031 100644
--- a/modules/book.module
+++ b/modules/book.module
@@ -56,7 +56,12 @@ function book_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    if (user_access("adminster nodes")) {
+      return array("format", "parent", "weight");
+    }
+    else {
+      return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/book/book.module b/modules/book/book.module
index 30d50d8d7065dfee107de8a13066e7594b6bdc75..9c486fe6e6fa508cab6ab34cf08495182d685031 100644
--- a/modules/book/book.module
+++ b/modules/book/book.module
@@ -56,7 +56,12 @@ function book_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    if (user_access("adminster nodes")) {
+      return array("format", "parent", "weight");
+    }
+    else {
+      return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/node.module b/modules/node.module
index ea4dd0a354aeb33237a6fdd516c6d54e13afb4a6..6aa0f79054ddc779d8f15e5eeb9cf8ad27fe8573 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -708,7 +708,6 @@ function node_validate($node, &$error) {
 
   $node = node_object($node);
 
-
   /*
   ** Validate the title field:
   */
@@ -870,8 +869,9 @@ function node_form($edit) {
     $output .= form_textfield(t("Authored on"), "date", $edit->date, 20, 25, $error["date"]);
     $output .= "<br />";
     $output .= form_select(t("Set public/published"), "status", $edit->status, array("Disabled", "Enabled"));
-    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
+    $output .= form_select(t("Queue for moderation"), "moderate", $edit->moderate, array("Disabled", "Enabled"));
     $output .= form_select(t("Promote to front page"), "promote", $edit->promote, array("Disabled", "Enabled"));
+    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
     $output .= form_select(t("Create new revision"), "revision", $edit->revision, array("Disabled", "Enabled"));
   }
 
@@ -973,17 +973,17 @@ function node_preview($node) {
   */
 
   if ($node->nid) {
-    $node = array_merge($node, module_invoke($node->type, "save", "update", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "update", $node));
   }
   else {
-    $node = array_merge($node, module_invoke($node->type, "save", "create", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "create", $node));
   }
 
   /*
   ** Display a preview of the node:
   */
 
-  node_view($node);
+  node_view($view);
 
   return node_form($node);
 }
diff --git a/modules/node/node.module b/modules/node/node.module
index ea4dd0a354aeb33237a6fdd516c6d54e13afb4a6..6aa0f79054ddc779d8f15e5eeb9cf8ad27fe8573 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -708,7 +708,6 @@ function node_validate($node, &$error) {
 
   $node = node_object($node);
 
-
   /*
   ** Validate the title field:
   */
@@ -870,8 +869,9 @@ function node_form($edit) {
     $output .= form_textfield(t("Authored on"), "date", $edit->date, 20, 25, $error["date"]);
     $output .= "<br />";
     $output .= form_select(t("Set public/published"), "status", $edit->status, array("Disabled", "Enabled"));
-    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
+    $output .= form_select(t("Queue for moderation"), "moderate", $edit->moderate, array("Disabled", "Enabled"));
     $output .= form_select(t("Promote to front page"), "promote", $edit->promote, array("Disabled", "Enabled"));
+    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
     $output .= form_select(t("Create new revision"), "revision", $edit->revision, array("Disabled", "Enabled"));
   }
 
@@ -973,17 +973,17 @@ function node_preview($node) {
   */
 
   if ($node->nid) {
-    $node = array_merge($node, module_invoke($node->type, "save", "update", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "update", $node));
   }
   else {
-    $node = array_merge($node, module_invoke($node->type, "save", "create", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "create", $node));
   }
 
   /*
   ** Display a preview of the node:
   */
 
-  node_view($node);
+  node_view($view);
 
   return node_form($node);
 }
diff --git a/modules/statistics.module b/modules/statistics.module
index 78ee849ff96c094e88909e34edd22b8589aa280e..6a243b2fffce6fcac0ed8dab2c9cafd19ba509d6 100644
--- a/modules/statistics.module
+++ b/modules/statistics.module
@@ -10,7 +10,7 @@ function statistics_help() {
   $output .= "<p>1. The external referrer log indicates which other sites are linking your website and how many visitors they refer. Each link made to your site - when a user on another site clicks on a link to your site - generates a referral entry in the log.</p>";
   $output .= "<p>2. The internal referrer log indicates the referrals within the domain of your site.  This log is useful for assessing and evaluating the structure of your website, to learn which pages are being accessed, and to gain insight into the way users are navigating your site.</p>";
   $output .= "<p>Drupal automatically rotates the referrer logs after a set period of time. The life-time of the accumulated data can be configured via the settings and filters option under site administration.</p>";
-  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This not always set properly by web browsers.</p>";
+  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This is not always set properly by web browsers.</p>";
   return $output;
 }
 
diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module
index 78ee849ff96c094e88909e34edd22b8589aa280e..6a243b2fffce6fcac0ed8dab2c9cafd19ba509d6 100644
--- a/modules/statistics/statistics.module
+++ b/modules/statistics/statistics.module
@@ -10,7 +10,7 @@ function statistics_help() {
   $output .= "<p>1. The external referrer log indicates which other sites are linking your website and how many visitors they refer. Each link made to your site - when a user on another site clicks on a link to your site - generates a referral entry in the log.</p>";
   $output .= "<p>2. The internal referrer log indicates the referrals within the domain of your site.  This log is useful for assessing and evaluating the structure of your website, to learn which pages are being accessed, and to gain insight into the way users are navigating your site.</p>";
   $output .= "<p>Drupal automatically rotates the referrer logs after a set period of time. The life-time of the accumulated data can be configured via the settings and filters option under site administration.</p>";
-  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This not always set properly by web browsers.</p>";
+  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This is not always set properly by web browsers.</p>";
   return $output;
 }
 
diff --git a/modules/story.module b/modules/story.module
index fbaa7d6a19507edf69a61e0787c4fde349fce82c..b9252b4dd38ae701a11d735b0cc27e4f17e90ac5 100644
--- a/modules/story.module
+++ b/modules/story.module
@@ -38,6 +38,10 @@ function story_save($op, $node) {
   if ($op == "decline") {
     return array("status" => 0, "promote" => 0);
   }
+
+  if ($op == "update") {
+    return array();
+  }
 }
 
 function story_help() {
diff --git a/modules/story/story.module b/modules/story/story.module
index fbaa7d6a19507edf69a61e0787c4fde349fce82c..b9252b4dd38ae701a11d735b0cc27e4f17e90ac5 100644
--- a/modules/story/story.module
+++ b/modules/story/story.module
@@ -38,6 +38,10 @@ function story_save($op, $node) {
   if ($op == "decline") {
     return array("status" => 0, "promote" => 0);
   }
+
+  if ($op == "update") {
+    return array();
+  }
 }
 
 function story_help() {