diff --git plugins/views_plugin_display.inc plugins/views_plugin_display.inc
index 00e7c67..bb7e74a 100644
--- plugins/views_plugin_display.inc
+++ plugins/views_plugin_display.inc
@@ -26,7 +26,7 @@
 class views_plugin_display extends views_plugin {
   /**
    * The top object of a view.
-   * 
+   *
    * @var view
    */
   var $view = NULL;
@@ -289,7 +289,7 @@ class views_plugin_display extends views_plugin {
       'group_by' => array('group_by'),
       'query' => array('query'),
       'use_more' => array('use_more', 'use_more_always', 'use_more_text'),
-      'link_display' => array('link_display'),
+      'link_display' => array('link_display', 'link_url'),
 
       // Force these to cascade properly.
       'style_plugin' => array('style_plugin', 'style_options', 'row_plugin', 'row_options'),
@@ -352,6 +352,7 @@ class views_plugin_display extends views_plugin {
           'exposed_form_options' => TRUE,
 
           'link_display' => TRUE,
+          'link_url' => '',
           'group_by' => TRUE,
 
           'style_plugin' => TRUE,
@@ -430,6 +431,9 @@ class views_plugin_display extends views_plugin {
       'link_display' => array(
         'default' => '',
       ),
+      'link_url' => array(
+        'default' => '',
+      ),
       'group_by' => array(
         'default' => FALSE,
         'bool' => TRUE,
@@ -819,6 +823,33 @@ class views_plugin_display extends views_plugin {
   }
 
   /**
+   * Returns to tokens for arguments.
+   *
+   * This function is similar to views_handler_field::get_render_tokens()
+   * but without fields tokens.
+   */
+  function get_arguments_tokens() {
+    $tokens = array();
+    if (!empty($this->view->build_info['substitutions'])) {
+      $tokens = $this->view->build_info['substitutions'];
+    }
+    $count = 0;
+    foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
+      $token = '%' . ++$count;
+      if (!isset($tokens[$token])) {
+        $tokens[$token] = '';
+      }
+
+      // Use strip tags as there should never be HTML in the path.
+      // However, we need to preserve special characters like " that
+      // were removed by check_plain().
+      $tokens['!' . $count] = isset($this->view->args[$count - 1]) ? strip_tags(html_entity_decode($this->view->args[$count - 1])) : '';
+    }
+
+    return $tokens;
+  }
+
+  /**
    * Intelligently set an option either from this display or from the
    * default display, if directed to do so.
    */
@@ -1068,27 +1099,15 @@ class views_plugin_display extends views_plugin {
     }
 
     if ($this->uses_link_display()) {
-      // Only show the 'link display' if there is more than one option.
-      $count = 0;
-      foreach ($this->view->display as $display_id => $display) {
-        if (is_object($display->handler) && $display->handler->has_path()) {
-          $count++;
-        }
-        if ($count > 1) {
-          break;
-        }
-      }
-
-      if ($count > 1) {
-        $display_id = $this->get_link_display();
-        $link_display = empty($this->view->display[$display_id]) ? t('None') : check_plain($this->view->display[$display_id]->display_title);
-        $options['link_display'] = array(
-          'category' => 'basic',
-          'title' => t('Link display'),
-          'value' => $link_display,
-          'desc' => t('Specify which display this display will link to.'),
-        );
-      }
+      $display_id = $this->get_link_display();
+      $link_display = empty($this->view->display[$display_id]) ? t('None') : check_plain($this->view->display[$display_id]->display_title);
+      $link_display =  $this->get_option('link_display') == 'custom_url' ? t('Custom URL') : $link_display;
+      $options['link_display'] = array(
+        'category' => 'basic',
+        'title' => t('Link display'),
+        'value' => $link_display,
+        'desc' => t('Specify which display or custom url this display will link to.'),
+      );
     }
 
     if ($this->has_path()) {
@@ -1244,7 +1263,7 @@ class views_plugin_display extends views_plugin {
         $form['use_more'] = array(
           '#type' => 'checkbox',
           '#title' => t('Create more link'),
-          '#description' => t("This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above."),
+          '#description' => t("This will add a more link to the bottom of this view, which will link to the page view. If you have more than one page view, the link will point to the display specified in 'Link display' above. You can override the url at the link display setting."),
           '#default_value' => $this->get_option('use_more'),
         );
         $form['use_more_always'] = array(
@@ -1464,11 +1483,44 @@ class views_plugin_display extends views_plugin {
             $options[$display_id] = $display->display_title;
           }
         }
-        $form['link_display'] = array(
-          '#type' => 'radios',
-          '#options' => $options,
-          '#description' => t("Which display to use to get this display's path for things like summary links, rss feed links, more links, etc."),
-          '#default_value' => $this->get_link_display(),
+        $options['custom_url'] = t('Custom URL');
+        if (count($options)) {
+          $form['link_display'] = array(
+            '#type' => 'radios',
+            '#options' => $options,
+            '#description' => t("Which display to use to get this display's path for things like summary links, rss feed links, more links, etc."),
+            '#default_value' => $this->get_option('link_display'),
+          );
+        }
+        $options = array();
+        $count = 0; // This lets us prepare the key as we want it printed.
+        foreach ($this->view->display_handler->get_handlers('argument') as $arg => $handler) {
+          $options[t('Arguments')]['%' . ++$count] = t('@argument title', array('@argument' => $handler->ui_name()));
+          $options[t('Arguments')]['!' . $count] = t('@argument input', array('@argument' => $handler->ui_name()));
+        }
+
+        // Default text.
+        // We have some options, so make a list.
+        if (!empty($options)) {
+          $output = t('<p>The following tokens are available for this link.</p>');
+          foreach (array_keys($options) as $type) {
+            if (!empty($options[$type])) {
+              $items = array();
+              foreach ($options[$type] as $key => $value) {
+                $items[] = $key . ' == ' . $value;
+              }
+              $output .= theme('item_list', $items, $type);
+            }
+          }
+        }
+
+        $form['link_url'] = array(
+          '#type' => 'textfield',
+          '#title' => t('Custom URL'),
+          '#default_value' => $this->get_option('link_url'),
+          '#description' => t('A Drupal path or external URL the more link will point to. Note that this will override the link display setting above.') . $output,
+          '#process' => array('views_process_dependency'),
+          '#dependency' => array('radio:link_display' => array('custom_url')),
         );
         break;
       case 'analyze-theme':
@@ -1964,6 +2016,7 @@ class views_plugin_display extends views_plugin {
       case 'link_display':
       case 'display_comment':
         $this->set_option($section, $form_state['values'][$section]);
+        $this->set_option('link_url', $form_state['values']['link_url']);
         break;
       case 'enabled':
       case 'use_ajax':
@@ -2179,8 +2232,16 @@ class views_plugin_display extends views_plugin {
   function render_more_link() {
     if ($this->use_more() && ($this->use_more_always() || (!empty($this->view->query->pager) && $this->view->query->pager->has_more_records()))) {
       $path = $this->get_path();
+
+      if ($this->get_option('link_display') == 'custom_url' && $override_path = $this->get_option('link_url')) {
+        $tokens = $this->get_arguments_tokens();
+        $path = strtr($override_path, $tokens);
+      }
+
       if ($path) {
-        $path = $this->view->get_url(NULL, $path);
+        if (empty($override_path) || (strpos($override_path, '!') === FALSE && strpos($override_path, '%') === FALSE)) {
+          $path = $this->view->get_url(NULL, $path);
+        }
         $url_options = array();
         if (!empty($this->view->exposed_raw_input)) {
           $url_options['query'] = $this->view->exposed_raw_input;
