diff --git a/handlers/views_handler_field_entity.inc b/handlers/views_handler_field_entity.inc
index 259a45f..0e13b23 100644
--- a/handlers/views_handler_field_entity.inc
+++ b/handlers/views_handler_field_entity.inc
@@ -62,6 +62,8 @@ class views_handler_field_entity extends views_handler_field {
     if (method_exists($this->query, 'add_field')) {
       $this->field_alias = $this->query->add_field($this->table_alias, $this->base_field, '');
     }
+
+    $this->add_additional_fields();
   }
 
   /**
@@ -74,9 +76,23 @@ class views_handler_field_entity extends views_handler_field {
   }
 
   /**
-   * Overridden to return the entity object.
+   * Overridden to return the entity object, or a certain property of the entity.
    */
   function get_value($values, $field = NULL) {
-    return isset($this->entities[$this->view->row_index]) ? $this->entities[$this->view->row_index] : FALSE;
+    if (isset($this->entities[$this->view->row_index])) {
+      $entity = $this->entities[$this->view->row_index];
+      // Support to get a certain part of the entity.
+      if (isset($field) && isset($entity->{$field})) {
+        return $entity->{$field};
+      }
+      // Support to get a part of the values as the normal get_value.
+      elseif (isset($field) && isset($values->{$this->aliases[$field]})) {
+        return $values->{$this->aliases[$field]};
+      }
+      else {
+        return $entity;
+      }
+    }
+    return FALSE;
   }
 }
diff --git a/modules/node/views_handler_field_node_revision_link_delete.inc b/modules/node/views_handler_field_node_revision_link_delete.inc
index 87000ca..bfb0011 100644
--- a/modules/node/views_handler_field_node_revision_link_delete.inc
+++ b/modules/node/views_handler_field_node_revision_link_delete.inc
@@ -5,10 +5,7 @@
 class views_handler_field_node_revision_link_delete extends views_handler_field_node_link {
   function construct() {
     parent::construct();
-    $this->additional_fields['uid'] = array('table' => 'node', 'field' => 'uid');
     $this->additional_fields['node_vid'] = array('table' => 'node', 'field' => 'vid');
-    $this->additional_fields['vid'] = 'vid';
-    $this->additional_fields['type'] = array('table' => 'node', 'field' => 'type');
   }
 
   function access() {
@@ -17,11 +14,7 @@ class views_handler_field_node_revision_link_delete extends views_handler_field_
 
   function render_link($data, $values) {
     // ensure user has access to delete this node.
-    $node = new stdClass();
-    $node->nid = $this->get_value($values, 'nid');
-    $node->vid = $this->get_value($values, 'vid');
-    $node->uid = $this->get_value($values, 'uid');
-    $node->type = $this->get_value($values, 'type');
+    $node = $this->get_value($values);
     $node->status = 1; // unpublished nodes ignore access control
     if (!node_access('delete', $node)) {
       return;
diff --git a/modules/node/views_handler_field_node_revision_link_revert.inc b/modules/node/views_handler_field_node_revision_link_revert.inc
index a7fcb73..267d82f 100644
--- a/modules/node/views_handler_field_node_revision_link_revert.inc
+++ b/modules/node/views_handler_field_node_revision_link_revert.inc
@@ -5,9 +5,7 @@
 class views_handler_field_node_revision_link_revert extends views_handler_field_node_link {
   function construct() {
     parent::construct();
-    $this->additional_fields['uid'] = array('table' => 'node', 'field' => 'uid');
     $this->additional_fields['node_vid'] = array('table' => 'node', 'field' => 'vid');
-    $this->additional_fields['vid'] = 'vid';
   }
 
   function access() {
@@ -16,10 +14,7 @@ class views_handler_field_node_revision_link_revert extends views_handler_field_
 
   function render_link($data, $values) {
     // ensure user has access to edit this node.
-    $node = new stdClass();
-    $node->nid = $this->get_value($values, 'nid');
-    $node->vid = $this->get_value($values, 'vid');
-    $node->uid = $this->get_value($values, 'uid');
+    $node = $this->get_value($values);
     $node->status = 1; // unpublished nodes ignore access control
     if (!node_access('update', $node)) {
       return;
diff --git a/modules/translation/views_handler_field_node_link_translate.inc b/modules/translation/views_handler_field_node_link_translate.inc
index 983fd47..3f321aa 100644
--- a/modules/translation/views_handler_field_node_link_translate.inc
+++ b/modules/translation/views_handler_field_node_link_translate.inc
@@ -3,20 +3,9 @@
  * Field handler to present a link node translate.
  */
 class views_handler_field_node_link_translate extends views_handler_field_node_link {
-  function construct() {
-    parent::construct();
-    $this->additional_fields['uid'] = 'uid';
-    $this->additional_fields['type'] = 'type';
-    $this->additional_fields['language'] = 'language';
-  }
-
   function render_link($data, $values) {
     // ensure user has access to edit this node.
-    $node = new stdClass();
-    $node->nid = $this->get_value($values, 'nid');
-    $node->uid = $this->get_value($values, 'uid');
-    $node->type = $this->get_value($values, 'type');
-    $node->language = $this->get_value($values, 'language');
+    $node = $this->get_value($values);
     $node->status = 1; // unpublished nodes ignore access control
     if (empty($node->language) || !translation_supported_type($node->type) || !node_access('view', $node) || !user_access('translate content')) {
       return;
