Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.410
diff -u -p -r1.410 menu.inc
--- includes/menu.inc	16 Sep 2010 19:47:45 -0000	1.410
+++ includes/menu.inc	23 Sep 2010 21:39:40 -0000
@@ -769,11 +769,23 @@ function _menu_link_map_translate(&$map,
   }
 }
 
+/**
+ * Returns path as one string from the argument we are currently at.
+ */
 function menu_tail_to_arg($arg, $map, $index) {
   return implode('/', array_slice($map, $index));
 }
 
 /**
+ * Loads path as one string from the argument we are currently at.
+ */
+function menu_tail_load($arg, &$map, $index) {
+  $arg = implode('/', array_slice($map, $index));
+  $map = array_slice($map, 0, $index);
+  return $arg;
+}
+
+/**
  * This function is similar to _menu_translate() but does link-specific
  * preparation such as always calling to_arg functions
  *
@@ -3138,6 +3150,9 @@ function _menu_router_build($callbacks) 
           }
           if (function_exists($matches[1] . '_load')) {
             $function = $matches[1] . '_load';
+            if (empty($item['load arguments']) && $function == 'menu_tail_load') {
+              $item['load arguments'] = array('%map', '%index');
+            }
             // Create an array of arguments that will be passed to the _load
             // function when this menu path is checked, if 'load arguments'
             // exists.
Index: modules/search/search.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.test,v
retrieving revision 1.74
diff -u -p -r1.74 search.test
--- modules/search/search.test	4 Sep 2010 13:33:53 -0000	1.74
+++ modules/search/search.test	23 Sep 2010 21:39:40 -0000
@@ -266,6 +266,31 @@ class SearchBikeShed extends DrupalWebTe
   }
 }
 
+class SearchSlashTestCase extends DrupalWebTestCase {
+  public static function getInfo() {
+    return array(
+      'name' => 'Search slash',
+      'description' => 'Tests that searches containing slashes work.',
+      'group' => 'Search'
+    );
+  }
+
+  function setUp() {
+    parent::setUp('search');
+
+    // Create user.
+    $this->drupalLogin($this->drupalCreateUser(array('search content')));
+  }
+
+  function testSlashes() {
+    $arg = $this->randomName() . '/' . $this->randomName();
+    $this->drupalGet('search/node/' . $arg);
+    // This verifies whether the arg appears in the search form. Not as
+    // accurate as writing a complicated xpath but works.
+    $this->assertRaw("\"$arg");
+  }
+}
+
 class SearchAdvancedSearchForm extends DrupalWebTestCase {
   protected $node;
 
