diff --git a/entity.info b/entity.info
index 0cae8cb..619b713 100644
--- a/entity.info
+++ b/entity.info
@@ -13,6 +13,7 @@ files[] = includes/entity.wrapper.inc
 files[] = views/entity.views.inc
 files[] = views/handlers/entity_views_field_handler_helper.inc
 files[] = views/handlers/entity_views_handler_area_entity.inc
+files[] = views/handlers/entity_views_handler_field_label.inc
 files[] = views/handlers/entity_views_handler_field_boolean.inc
 files[] = views/handlers/entity_views_handler_field_date.inc
 files[] = views/handlers/entity_views_handler_field_duration.inc
@@ -24,4 +25,4 @@ files[] = views/handlers/entity_views_handler_field_text.inc
 files[] = views/handlers/entity_views_handler_field_uri.inc
 files[] = views/handlers/entity_views_handler_relationship_by_bundle.inc
 files[] = views/handlers/entity_views_handler_relationship.inc
-files[] = views/plugins/entity_views_plugin_row_entity_view.inc
\ No newline at end of file
+files[] = views/plugins/entity_views_plugin_row_entity_view.inc
diff --git a/views/entity.views.inc b/views/entity.views.inc
index cd359fc..c8ab118 100644
--- a/views/entity.views.inc
+++ b/views/entity.views.inc
@@ -68,6 +68,17 @@ function entity_views_data() {
         ),
       );
     }
+    if (isset($info['entity keys']['label']) || isset($info['label callback'])) {
+      $data['views_entity_' . $entity_type]['label'] = array(
+        'title' => t('Entity label'),
+        'help' => t('The label of the @entity-type entity.', array('@entity-type' => $info['label'])),
+        'field' => array(
+          'handler' => 'entity_views_handler_field_label',
+          'type' => $entity_type,
+          'real field' => 'entity object',
+        ),
+      );
+    }
   }
 
   $data['entity__global']['table']['group'] = t('Entity');
diff --git a/views/handlers/entity_views_handler_field_label.inc b/views/handlers/entity_views_handler_field_label.inc
new file mode 100644
index 0000000..ef4c1f2
--- /dev/null
+++ b/views/handlers/entity_views_handler_field_label.inc
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * @file
+ * Contains the entity_views_handler_field_label class.
+ */
+
+/**
+ * Field handler to present the label of the entity.
+ *
+ * @ingroup views_field_handlers
+ */
+class entity_views_handler_field_label extends views_handler_field_entity {
+
+  /**
+   * Add a link to entity option.
+   * @see views_handler_field::option_definition()
+   */
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['link_to_entity'] = array('default' => TRUE);
+    return $options;
+  }
+
+  /**
+   * Add link to entity option to the options form.
+   * @see views_handler_field::options_form()
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['link_to_entity'] = array(
+    	'#title' => t("Link this field to it's entity"),
+      '#description' => t("Enable to override this field's links."),
+      '#type' => 'checkbox',
+      '#default_value' => !empty($this->options['link_to_entity']),
+    );
+  }
+
+  /**
+   * Render the label using the entity_label() function.
+   * @see views_handler_field::render()
+   */
+  function render($values) {
+    if (($entity = $this->get_value($values)) && entity_access('view', $this->entity_type, $entity)) {
+      if ($this->options['link_to_entity'] &&  $uri = entity_uri($this->entity_type, $entity)) {
+        $this->options['alter']['path'] = $uri['path'];
+        $this->options['alter']['make_link'] = TRUE;
+      }
+      return entity_label($this->entity_type, $entity);
+    }
+  }
+}
