diff --git includes/menu.inc includes/menu.inc
index 72bafa9..f0cfb55 100644
--- includes/menu.inc
+++ includes/menu.inc
@@ -783,11 +783,31 @@ function _menu_link_map_translate(&$map, $to_arg_functions) {
   }
 }
 
+/**
+ * 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.
+ *
+ * To use this load function, you must specify the load arguments
+ * in the router item as:
+ * @code
+ * $item['load arguments'] = array('%map', '%index');
+ * @endcode
+ *
+ * @see search_menu().
+ */
+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
  *
diff --git modules/search/search.module modules/search/search.module
index c676876..f336eed 100644
--- modules/search/search.module
+++ modules/search/search.module
@@ -209,6 +209,7 @@ function search_menu() {
       );
       $items["$path/%menu_tail"] = array(
         'title' => $search_info['title'],
+        'load arguments' => array('%map', '%index'),
         'page callback' => 'search_view',
         'page arguments' => array($module, 2),
         'access callback' => '_search_menu_access',
diff --git modules/search/search.test modules/search/search.test
index b5437ea..6437527 100644
--- modules/search/search.test
+++ modules/search/search.test
@@ -282,6 +282,31 @@ class SearchPageText extends DrupalWebTestCase {
   }
 }
 
+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;
 
