diff --git a/publishcontent_views_handler_field_node_link.inc b/publishcontent_views_handler_field_node_link.inc
index f01c651..03ec8cb 100644
--- a/publishcontent_views_handler_field_node_link.inc
+++ b/publishcontent_views_handler_field_node_link.inc
@@ -3,7 +3,7 @@
 /**
  * Field handler to present a link node publish.
  */
-class publishcontent_views_handler_field_node_link extends views_handler_field {
+class publishcontent_views_handler_field_node_link extends views_handler_field_node_link {
   function construct() {
     parent::construct();
     $this->additional_fields['nid'] = 'nid';
@@ -22,6 +22,7 @@ class publishcontent_views_handler_field_node_link extends views_handler_field {
 
   function options_form(&$form, &$form_state) {
     parent::options_form($form, $form_state);
+		unset($form['text']);
     $form['publish'] = array(
       '#type' => 'textfield',
       '#title' => t('Text to display for publishing'),
@@ -40,16 +41,8 @@ class publishcontent_views_handler_field_node_link extends views_handler_field {
     $this->add_additional_fields();
   }
 
-  function render($values) {
+  function render_link($node, $values) {
     // ensure user has access to edit this node.
-    $node = new stdClass();
-    $node->nid = $values->{$this->aliases['nid']};
-    $node->type = $values->{$this->aliases['type']};
-    $node->status = $values->{$this->aliases['status']};
-    $node->uid = $values->{$this->aliases['uid']};
-
-    $options = array('query' => drupal_get_destination());
-
     if ($node->status && _publishcontent_unpublish_access($node)) {
       $op = 'unpublish';
     }
@@ -59,9 +52,13 @@ class publishcontent_views_handler_field_node_link extends views_handler_field {
     }
 
     if (isset($op)) {
-      $options['attributes'] = array('class' => array('publishcontent-link', 'publishcontent-' . $op));
-      return l(empty($this->options[$op]) ? t($op) : $this->options[$op],
-               "node/$node->nid/$op/". drupal_get_token(), $options);
+      $this->options['alter']['make_link'] = TRUE;
+      $this->options['alter']['path'] = "node/$node->nid/$op/" . drupal_get_token();
+      $this->options['alter']['query'] = drupal_get_destination();
+			$this->options['alter']['link_class'] = 'publishcontent-link publishcontent-' . $op;
+
+			$text = empty($this->options[$op]) ? t($op) : $this->options[$op];
+			return $text;
     }
   }
 }
