=== modified file 'modules/menu/menu.admin.inc'
--- modules/menu/menu.admin.inc	2007-09-12 11:48:15 +0000
+++ modules/menu/menu.admin.inc	2007-09-20 09:51:27 +0000
@@ -138,11 +138,18 @@ function menu_edit_item(&$form_state, $t
   $form['menu']['customized'] = array('#type' => 'value', '#value' => 1);
   $form['menu']['original_item'] = array('#type' => 'value', '#value' => $item);
 
+  $path = $item['link_path'];
+  if (isset($item['options']['query'])) {
+    $path .= '?'. $item['options']['query'];
+  }
+  if (isset($item['options']['fragment'])) {
+    $path .= '#'. $item['options']['fragment'];
+  }
   if ($item['module'] == 'menu') {
     $form['menu']['link_path'] = array(
       '#type' => 'textfield',
       '#title' => t('Path'),
-      '#default_value' => $item['link_path'],
+      '#default_value' => $path,
       '#description' => t('The path this menu item links to. This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org')),
       '#required' => TRUE,
     );
@@ -211,7 +218,19 @@ function menu_edit_item(&$form_state, $t
  * Validate form values for a menu link being added or edited.
  */
 function menu_edit_item_validate($form, &$form_state) {
-  $item = $form_state['values']['menu'];
+  $item = &$form_state['values']['menu'];
+  if (!menu_path_is_external($item['link_path'])) {
+    $parsed_link = parse_url($item['link_path']);
+    if (isset($parsed_link['query'])) {
+      $item['options']['query'] = $parsed_link['query'];
+    }
+    if (isset($parsed_link['fragment'])) {
+      $item['options']['fragment'] = $parsed_link['fragment'];
+    }
+    if ($item['link_path'] != $parsed_link['path']) {
+      $item['link_path'] = $parsed_link['path'];
+    }
+  }
   if (!trim($item['link_path']) || !menu_valid_path($item)) {
     form_set_error('link_path', t("The path '@link_path' is either invalid or you do not have access to it.", array('@link_path' => $item['link_path'])));
   }

=== modified file 'modules/node/node.module'
--- modules/node/node.module	2007-09-11 14:50:04 +0000
+++ modules/node/node.module	2007-09-19 17:24:43 +0000
@@ -754,10 +754,9 @@ function node_submit($node) {
     else {
       $node->uid = 0;
     }
-
-    $node->created = $node->date ? strtotime($node->date) : NULL;
   }
 
+  $node->created = !empty($node->date) ? strtotime($node->date) : time();
   $node->validated = TRUE;
 
   return $node;
@@ -1278,7 +1277,7 @@ function node_menu() {
     'position' => 'left',
     'weight' => -10,
     'page callback' => 'system_admin_menu_block_page',
-    'access arguments' => array('administer nodes'),
+    'access arguments' => array('access administration pages'),
     'file' => 'system.admin.inc',
     'file path' => drupal_get_path('module', 'system'),
   );

=== modified file 'modules/node/node.pages.inc'
--- modules/node/node.pages.inc	2007-09-09 19:52:29 +0000
+++ modules/node/node.pages.inc	2007-09-19 17:56:36 +0000
@@ -62,17 +62,7 @@ function node_form_validate($form, &$for
 }
 
 function node_object_prepare(&$node) {
-  if (user_access('administer nodes')) {
-    // Set up default values, if required.
-    if (!isset($node->created)) {
-      $node->created = time();
-    }
-
-    if (!isset($node->date)) {
-      $node->date = format_date($node->created, 'custom', 'Y-m-d H:i:s O');
-    }
-  }
-
+  // Set up default values, if required.
   $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)) {
@@ -81,6 +71,10 @@ function node_object_prepare(&$node) {
     }
     global $user;
     $node->uid = $user->uid;
+    $node->created = time();
+  }
+  else {
+    $node->date = format_date($node->created, 'custom', 'Y-m-d H:i:s O');
   }
   // Always use the default revision setting.
   $node->revision = in_array('revision', $node_options);
@@ -169,9 +163,14 @@ function node_form(&$form_state, $node) 
     '#weight' => 20,
   );
   $form['author']['name'] = array('#type' => 'textfield', '#title' => t('Authored by'), '#maxlength' => 60, '#autocomplete_path' => 'user/autocomplete', '#default_value' => $node->name ? $node->name : '', '#weight' => -1, '#description' => t('Leave blank for %anonymous.', array('%anonymous' => variable_get('anonymous', t('Anonymous')))));
-  $form['author']['date'] = array('#type' => 'textfield', '#title' => t('Authored on'), '#maxlength' => 25, '#description' => t('Format: %time. Leave blank to use the time of form submission.', array('%time' => $node->date)));
-
-  if (isset($node->nid)) {
+  $date = empty($node->date) ? format_date($node->created, 'custom', 'Y-m-d H:i:s O') : $node->date;
+  $form['author']['date'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Authored on'),
+    '#maxlength' => 25,
+    '#description' => t('Format: %time. Leave blank to use the time of form submission.', array('%time' => $date)),
+  );
+  if (isset($node->date)) {
     $form['author']['date']['#default_value'] = $node->date;
   }
 
@@ -336,10 +335,6 @@ function node_preview($node) {
       $node->picture = $user->picture;
     }
 
-    // Set the timestamps when needed:
-    if ($node->date) {
-      $node->created = strtotime($node->date);
-    }
     $node->changed = time();
 
     // Extract a teaser, if it hasn't been set (e.g. by a module-provided

