diff --git a/plugins/selection/EntityReference_SelectionHandler_Views.class.php b/plugins/selection/EntityReference_SelectionHandler_Views.class.php
index 1b036a7..5c63ea0 100644
--- a/plugins/selection/EntityReference_SelectionHandler_Views.class.php
+++ b/plugins/selection/EntityReference_SelectionHandler_Views.class.php
@@ -9,12 +9,13 @@ class EntityReference_SelectionHandler_Views implements EntityReference_Selectio
    * Implements EntityReferenceHandler::getInstance().
    */
   public static function getInstance($field, $instance = NULL, $entity_type = NULL, $entity = NULL) {
-    return new EntityReference_SelectionHandler_Views($field, $instance);
+    return new EntityReference_SelectionHandler_Views($field, $instance, $entity);
   }
 
-  protected function __construct($field, $instance) {
+  protected function __construct($field, $instance, $entity = NULL) {
     $this->field = $field;
     $this->instance = $instance;
+    $this->entity = $entity;
   }
 
   /**
@@ -51,6 +52,15 @@ class EntityReference_SelectionHandler_Views implements EntityReference_Selectio
         '#description' => '<p>' . t('Choose the view and display that select the entities that can be referenced.<br />Only views with a display of type "Entity Reference" are eligible.') . '</p>',
       );
 
+      $default = !empty($view_settings['pass_entity']) ? $view_settings['pass_entity'] : 0;
+      $form['view']['pass_entity'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Pass entity to view'),
+        '#default_value' => $default,
+        '#required' => FALSE,
+        '#description' => t('Pass the entity\'s ID as the first argument to the view.')
+      );
+      
       $default = !empty($view_settings['args']) ? implode(', ', $view_settings['args']) : '';
       $form['view']['args'] = array(
         '#type' => 'textfield',
@@ -104,7 +114,12 @@ class EntityReference_SelectionHandler_Views implements EntityReference_Selectio
    */
   public function getReferencableEntities($match = NULL, $match_operator = 'CONTAINS', $limit = 0) {
     $display_name = $this->field['settings']['handler_settings']['view']['display_name'];
+    $pass_entity = isset($this->field['settings']['handler_settings']['view']['pass_entity']) ? $this->field['settings']['handler_settings']['view']['pass_entity'] : FALSE;
     $args = $this->field['settings']['handler_settings']['view']['args'];
+    if ($pass_entity && isset($this->entity)) {
+      list($entity_id,,) = entity_extract_ids($this->field['settings']['target_type'], $this->entity);
+      array_unshift($args, $entity_id);
+    }
     $result = array();
     if ($this->initializeView($match, $match_operator, $limit)) {
       // Get the results.
@@ -133,7 +148,12 @@ class EntityReference_SelectionHandler_Views implements EntityReference_Selectio
 
   function validateReferencableEntities(array $ids) {
     $display_name = $this->field['settings']['handler_settings']['view']['display_name'];
+    $pass_entity = isset($this->field['settings']['handler_settings']['view']['pass_entity']) ? $this->field['settings']['handler_settings']['view']['pass_entity'] : FALSE;
     $args = $this->field['settings']['handler_settings']['view']['args'];
+    if ($pass_entity && isset($this->entity)) {
+      list($entity_id,,) = entity_extract_ids($this->field['settings']['target_type'], $this->entity);
+      array_unshift($args, $entity_id);
+    }
     $result = array();
     if ($this->initializeView(NULL, 'CONTAINS', 0, $ids)) {
       // Get the results.
@@ -188,6 +208,11 @@ function entityreference_view_settings_validate($element, &$form_state, $form) {
     $args = array_map('trim', explode(',', $args_string));
   }
 
-  $value = array('view_name' => $view, 'display_name' => $display, 'args' => $args);
+  $pass_entity = FALSE;
+  if ($element['pass_entity']['#value']) {
+    $pass_entity = TRUE;
+  }
+  
+  $value = array('view_name' => $view, 'display_name' => $display, 'pass_entity' => $pass_entity, 'args' => $args,);
   form_set_value($element, $value, $form_state);
 }
