=== modified file 'includes/menu.inc'
--- includes/menu.inc	2009-12-14 20:23:01 +0000
+++ includes/menu.inc	2009-12-16 11:42:16 +0000
@@ -3321,7 +3321,7 @@ function _menu_site_is_offline($check_on
  *   TRUE if it is a valid path AND the current user has access permission,
  *   FALSE otherwise.
  */
-function menu_valid_path($form_item) {
+function menu_valid_path($form_item, $dynamic_allowed = FALSE) {
   global $menu_admin;
   $item = array();
   $path = $form_item['link_path'];
@@ -3330,7 +3330,7 @@ function menu_valid_path($form_item) {
   if ($path == '<front>' || url_is_external($path)) {
     $item = array('access' => TRUE);
   }
-  elseif (preg_match('/\/\%/', $path)) {
+  elseif ($dynamic_allowed && preg_match('/\/\%/', $path)) {
     // Path is dynamic (ie 'user/%'), so check directly against menu_router table.
     if ($item = db_query("SELECT * FROM {menu_router} where path = :path", array(':path' => $path))->fetchAssoc()) {
       $item['link_path']  = $form_item['link_path'];

=== modified file 'modules/menu/menu.admin.inc'
--- modules/menu/menu.admin.inc	2009-11-04 04:43:58 +0000
+++ modules/menu/menu.admin.inc	2009-12-16 11:42:45 +0000
@@ -363,7 +363,7 @@ function menu_edit_item_validate($form, 
       $item['link_path'] = $parsed_link['path'];
     }
   }
-  if (!trim($item['link_path']) || !menu_valid_path($item)) {
+  if (!trim($item['link_path']) || !menu_valid_path($item, TRUE)) {
     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/path/path.admin.inc'
--- modules/path/path.admin.inc	2009-12-02 19:26:21 +0000
+++ modules/path/path.admin.inc	2009-12-16 11:44:16 +0000
@@ -146,6 +146,7 @@ function path_admin_form($form, &$form_s
  * Verify that a URL alias is valid
  */
 function path_admin_form_validate($form, &$form_state) {
+  global $menu_admin;
   $source = &$form_state['values']['source'];
   $source = drupal_get_normal_path($source);
   $alias = $form_state['values']['alias'];
@@ -163,7 +164,9 @@ function path_admin_form_validate($form,
   if ($has_alias) {
     form_set_error('alias', t('The alias %alias is already in use in this language.', array('%alias' => $alias)));
   }
+  $menu_admin = TRUE;
   $item = menu_get_item($source);
+  $menu_admin = FALSE;
   if (!$item || !$item['access']) {
     form_set_error('source', t("The path '@link_path' is either invalid or you do not have access to it.", array('@link_path' => $source)));
   }

