diff --git a/plugins/selection/EntityReference_SelectionHandler_Views.class.php b/plugins/selection/EntityReference_SelectionHandler_Views.class.php
index cbed33b..84f04c7
--- a/plugins/selection/EntityReference_SelectionHandler_Views.class.php
+++ b/plugins/selection/EntityReference_SelectionHandler_Views.class.php
@@ -177,7 +177,23 @@ class EntityReference_SelectionHandler_Views implements EntityReference_Selectio
    * Implements EntityReferenceHandler::getLabel().
    */
   public function getLabel($entity) {
-    return entity_label($this->field['settings']['target_type'], $entity);
+    $id = entity_id($this->field['settings']['target_type'], $entity);
+    $display_name = $this->field['settings']['handler_settings']['view']['display_name'];
+    $args = $this->handleArgs($this->field['settings']['handler_settings']['view']['args']);
+    $label = entity_label($this->field['settings']['target_type'], $entity);
+    if ($this->initializeView(NULL, 'CONTAINS', 0, $id)) {
+      // Get the results.
+      $entities = $this->view->execute_display($display_name, $args);
+      if (!empty($entities)) {
+        $label = array_pop($entities);
+        $label = preg_replace('/\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;
   }
 
   /**
