diff --git a/entityreference.module b/entityreference.module
index 42af2a3..5aba59f 100644
--- a/entityreference.module
+++ b/entityreference.module
@@ -872,7 +872,7 @@ function entityreference_field_widget_form(&$form, &$form_state, $field, $instan
     $entities = entity_load($field['settings']['target_type'], $entity_ids);
 
     foreach ($entities as $entity_id => $entity_item) {
-      $label = $handler->getLabel($entity_item);
+      $label = $handler->getLabel($entity_item, $entity_id);
       $key = "$label ($entity_id)";
       // Labels containing commas or quotes must be wrapped in quotes.
       if (strpos($key, ',') !== FALSE || strpos($key, '"') !== FALSE) {
diff --git a/plugins/selection/EntityReference_SelectionHandler_Generic.class.php b/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
index e0dff00..c4a0b59 100644
--- a/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
+++ b/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
@@ -307,7 +307,7 @@ class EntityReference_SelectionHandler_Generic implements EntityReference_Select
   /**
    * Implements EntityReferenceHandler::getLabel().
    */
-  public function getLabel($entity) {
+  public function getLabel($entity, $entity_id = NULL) {
     $target_type = $this->field['settings']['target_type'];
     return entity_access('view', $target_type, $entity) ? entity_label($target_type, $entity) : t('- Restricted access -');
   }
@@ -495,7 +495,7 @@ class EntityReference_SelectionHandler_Generic_file extends EntityReference_Sele
     return $query;
   }
 
-  public function getLabel($entity) {
+  public function getLabel($entity, $entity_id = NULL) {
     // The file entity doesn't have a label. More over, the filename is
     // sometimes empty, so use the basename in that case.
     return $entity->filename !== '' ? $entity->filename : basename($entity->uri);
diff --git a/plugins/selection/EntityReference_SelectionHandler_Views.class.php b/plugins/selection/EntityReference_SelectionHandler_Views.class.php
index cbed33b..d1cd910 100644
--- a/plugins/selection/EntityReference_SelectionHandler_Views.class.php
+++ b/plugins/selection/EntityReference_SelectionHandler_Views.class.php
@@ -176,7 +176,22 @@ class EntityReference_SelectionHandler_Views implements EntityReference_Selectio
   /**
    * Implements EntityReferenceHandler::getLabel().
    */
-  public function getLabel($entity) {
+  public function getLabel($entity, $entity_id = NULL) {
+    $display_name = $this->field['settings']['handler_settings']['view']['display_name'];
+    $args = $this->field['settings']['handler_settings']['view']['args'];
+    $result = array();
+    if (!is_null($entity_id) && $this->initializeView(NULL, 'CONTAINS', 0, array($entity_id))) {
+      // Get the results.
+      $entities = $this->view->execute_display($display_name, $args);
+      $label = array_pop($entities);
+      $label = preg_replace('/\s\s/', ' ', str_replace(PHP_EOL, '', trim(decode_entities(strip_tags($label)))));
+      // Names containing commas or quotes must be wrapped in quotes.
+      if (strpos($label, ',') !== FALSE || strpos($label, '"') !== FALSE) {
+        $label = '"' . str_replace('"', '""', $label) . '"';
+      }
+      return $label;
+    }
+
     return entity_label($this->field['settings']['target_type'], $entity);
   }
 
