diff --git a/core/modules/menu/menu.admin.inc b/core/modules/menu/menu.admin.inc
index 2e1725d..3df3fb1 100644
--- a/core/modules/menu/menu.admin.inc
+++ b/core/modules/menu/menu.admin.inc
@@ -298,7 +298,8 @@ function menu_edit_item($form, &$form_state, $type, $item, $menu) {
       '#title' => t('Path'),
       '#maxlength' => 255,
       '#default_value' => $path,
-      '#description' => t('The path for this menu link. 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')),
+      '#description' => t('The path for this menu link. 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. You may enter the title of the node you would like to link to to get a list of possible matches.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org')),
+      '#autocomplete_path' => 'menu/autocomplete',
       '#required' => TRUE,
     );
     $form['actions']['delete'] = array(
@@ -694,3 +695,29 @@ function menu_configure() {
 
   return system_settings_form($form);
 }
+
+/**
+ * Page callback: Outputs JSON for menu path autocomplete suggestions.
+ */
+function menu_autocomplete($title_typed = '') {
+  $title_matches = array();
+
+  if ($title_typed != '') {
+    $query = db_select('node', 'n');
+    $query->addTag('translatable');
+    $query->addTag('node_access');
+    
+    // Select rows that match by node title.
+    $titles_return = $query
+      ->fields('n', array('nid', 'title'))
+      ->condition('n.title', '%' . db_like($title_typed) . '%', 'LIKE')
+      ->range(0, 10)
+      ->execute()
+      ->fetchAllKeyed();
+
+    foreach ($titles_return as $nid => $title) {
+      $title_matches['node/' . $nid] = check_plain($title);
+    }
+  }
+  drupal_json_output($title_matches);
+}
diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module
index 466cd88..17408ad 100644
--- a/core/modules/menu/menu.module
+++ b/core/modules/menu/menu.module
@@ -155,6 +155,13 @@ function menu_menu() {
     'access arguments' => array('administer menu'),
     'file' => 'menu.admin.inc',
   );
+  $items['menu/autocomplete'] = array(
+    'title' => 'Autocomplete menu items',
+    'page callback' => 'menu_autocomplete',
+    'access arguments' => array('administer menu'),
+    'type' => MENU_CALLBACK,
+    'file' => 'menu.admin.inc',
+  );
   return $items;
 }
 
diff --git a/core/modules/menu/menu.test b/core/modules/menu/menu.test
index 14fe96b..66ea476 100644
--- a/core/modules/menu/menu.test
+++ b/core/modules/menu/menu.test
@@ -31,6 +31,18 @@ class MenuTestCase extends WebTestBase {
   }
 
   /**
+   * Test if autocomplete returns user created node for menu path
+   */
+  function testMenuAdminNodeTitleAutoComplete() {
+    $this->drupalLogin($this->big_user);
+    $node_array = array('title' => 'invisibleink and Ron Williams');
+    $node = $this->drupalCreateNode($node_array);
+    $expected = '{"node\/1":"invisibleink and Ron Williams"}';
+    $result = $this->drupalGet('menu/autocomplete/' . 'invis');
+    $this->assertIdentical($result, $expected, t('The autocomplete path returned the proper JSON object when acessing autocomplete URL'));
+  }
+
+  /**
    * Login users, add menus and menu links, and test menu functionality through the admin and user interfaces.
    */
   function testMenu() {
