diff -uprN ../../views-dev/modules/node/views_handler_field_node_link.inc ./modules/node/views_handler_field_node_link.inc
--- ../../views-dev/modules/node/views_handler_field_node_link.inc	2008-09-03 22:21:00.000000000 +0300
+++ ./modules/node/views_handler_field_node_link.inc	2009-12-14 15:01:17.000000000 +0200
@@ -13,6 +13,8 @@ class views_handler_field_node_link exte
     $options = parent::option_definition();
 
     $options['text'] = array('default' => '', 'translatable' => TRUE);
+    $options['absolute_url'] = array('default' => FALSE, 'bool' => TRUE);
+    $options['raw_link'] = array('default' => FALSE, 'bool' => TRUE);
 
     return $options;
   }
@@ -24,6 +26,19 @@ class views_handler_field_node_link exte
       '#title' => t('Text to display'),
       '#default_value' => $this->options['text'],
     );
+    $form['absolute_url'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Use absolute URL'),
+      '#description' => t('If checked, node link will produce an URL with http:// attached to it.'),
+      '#default_value' => $this->options['absolute_url'],
+    );
+    $form['raw_link'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show as raw link'),
+      '#default_value' => $this->options['raw_link'],
+      '#description' => t('If enabled, this field will be displayed as the raw URL as generated by the Drupal url() function, making it useful to be used as the link text for other fields. "Text to display" field value will be ignored.'),
+    );
+
   }
 
   function query() {
@@ -32,8 +47,16 @@ class views_handler_field_node_link exte
   }
 
   function render($values) {
-    $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
     $nid = $values->{$this->aliases['nid']};
-    return l($text, "node/$nid");
+    // Provide a raw URL.
+    if ($this->options['raw_link']) {
+      $link = url("node/$nid", array('absolute' => $this->options['absolute_url']));
+    }
+    // Provide a full link.
+    else {
+      $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
+      $link = l($text, "node/$nid", array('absolute' => $this->options['absolute_url']));
+    }
+    return $link;
   }
 }
diff -uprN ../../views-dev/modules/node/views_handler_field_node_link_delete.inc ./modules/node/views_handler_field_node_link_delete.inc
--- ../../views-dev/modules/node/views_handler_field_node_link_delete.inc	2008-09-03 22:21:00.000000000 +0300
+++ ./modules/node/views_handler_field_node_link_delete.inc	2009-12-14 15:10:15.000000000 +0200
@@ -11,6 +11,11 @@ class views_handler_field_node_link_dele
     $this->additional_fields['format'] = array('table' => 'node_revisions', 'field' => 'format');
   }
 
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    unset($form['raw_link']);
+  }
+
   function render($values) {
     // ensure user has access to edit this node.
     $node = new stdClass();
@@ -23,8 +28,13 @@ class views_handler_field_node_link_dele
       return;
     }
 
+    $options = array(
+      'query' => drupal_get_destination(),
+      'absolute' => $this->options['absolute_url'],
+    );
+
     $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
-    return l($text, "node/$node->nid/delete", array('query' => drupal_get_destination()));
+    return l($text, "node/$node->nid/delete", $options);
   }
 }
 
diff -uprN ../../views-dev/modules/node/views_handler_field_node_link_edit.inc ./modules/node/views_handler_field_node_link_edit.inc
--- ../../views-dev/modules/node/views_handler_field_node_link_edit.inc	2008-09-03 22:21:00.000000000 +0300
+++ ./modules/node/views_handler_field_node_link_edit.inc	2009-12-14 15:13:19.000000000 +0200
@@ -11,6 +11,11 @@ class views_handler_field_node_link_edit
     $this->additional_fields['format'] = array('table' => 'node_revisions', 'field' => 'format');
   }
 
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    unset($form['raw_link']);
+  }
+
   function render($values) {
     // ensure user has access to edit this node.
     $node = new stdClass();
@@ -23,8 +28,13 @@ class views_handler_field_node_link_edit
       return;
     }
 
+    $options = array(
+      'query' => drupal_get_destination(),
+      'absolute' => $this->options['absolute_url'],
+    );
+
     $text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
-    return l($text, "node/$node->nid/edit", array('query' => drupal_get_destination()));
+    return l($text, "node/$node->nid/edit", $options);
   }
 }
 
diff -uprN ../../views-dev/modules/node/views_handler_field_node_revision_link_delete.inc ./modules/node/views_handler_field_node_revision_link_delete.inc
--- ../../views-dev/modules/node/views_handler_field_node_revision_link_delete.inc	2008-09-03 22:21:00.000000000 +0300
+++ ./modules/node/views_handler_field_node_revision_link_delete.inc	2009-12-14 15:10:02.000000000 +0200
@@ -16,6 +16,11 @@ class views_handler_field_node_revision_
     return user_access('delete revisions') || user_access('administer nodes');
   }
 
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    unset($form['raw_link']);
+  }
+  
   function render($values) {
     // ensure user has access to edit this node.
     $node = new stdClass();
@@ -32,7 +37,13 @@ class views_handler_field_node_revision_
     if ($node->vid == $values->{$this->aliases['node_vid']}) {
       return;
     }
+
+    $options = array(
+      'query' => drupal_get_destination(),
+      'absolute' => $this->options['absolute_url'],
+    );
+
     $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
-    return l($text, "node/$node->nid/revisions/$node->vid/delete", array('query' => drupal_get_destination()));
+    return l($text, "node/$node->nid/revisions/$node->vid/delete", $options);
   }
 }
diff -uprN ../../views-dev/modules/node/views_handler_field_node_revision_link_revert.inc ./modules/node/views_handler_field_node_revision_link_revert.inc
--- ../../views-dev/modules/node/views_handler_field_node_revision_link_revert.inc	2008-09-03 22:21:00.000000000 +0300
+++ ./modules/node/views_handler_field_node_revision_link_revert.inc	2009-12-14 15:11:00.000000000 +0200
@@ -16,6 +16,11 @@ class views_handler_field_node_revision_
     return user_access('revert revisions') || user_access('administer nodes');
   }
 
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    unset($form['raw_link']);
+  }
+  
   function render($values) {
     // ensure user has access to edit this node.
     $node = new stdClass();
@@ -33,7 +38,12 @@ class views_handler_field_node_revision_
       return;
     }
 
+    $options = array(
+      'query' => drupal_get_destination(),
+      'absolute' => $this->options['absolute_url'],
+    );
+
     $text = !empty($this->options['text']) ? $this->options['text'] : t('revert');
-    return l($text, "node/$node->nid/revisions/$node->vid/revert", array('query' => drupal_get_destination()));
+    return l($text, "node/$node->nid/revisions/$node->vid/revert", $options);
   }
 }
