diff --git a/plugins/selection/EntityReference_SelectionHandler_Generic.class.php b/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
index 2d1c5d7..36d0a55 100644
--- a/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
+++ b/plugins/selection/EntityReference_SelectionHandler_Generic.class.php
@@ -149,6 +149,19 @@ class EntityReference_SelectionHandler_Generic implements EntityReference_Select
       );
     }
 
+    // add multilingual support if i18n is installed
+    if ( module_exists('i18n') ) {
+    	$form['filter']['language'] = array(
+    			'#type' => 'select',
+    			'#title' => t('Language handling'),
+    			'#options' => array(
+    					0 => t('Select all nodes'),
+    					1 => t('Select only nodes in parent\'s language'),
+    			),
+    			'#default_value' => isset($field['settings']['handler_settings']['filter']['language']) ? $field['settings']['handler_settings']['filter']['language'] : 0,
+    	);
+    }
+
     return $form;
   }
 
@@ -244,11 +257,20 @@ class EntityReference_SelectionHandler_Generic implements EntityReference_Select
     if (!empty($this->field['settings']['handler_settings']['target_bundles'])) {
       $query->entityCondition('bundle', $this->field['settings']['handler_settings']['target_bundles'], 'IN');
     }
-    if (isset($match)) {
-      $entity_info = entity_get_info($this->field['settings']['target_type']);
-      if (isset($entity_info['entity keys']['label'])) {
-        $query->propertyCondition($entity_info['entity keys']['label'], $match, $match_operator);
+    $entity_info = entity_get_info($this->field['settings']['target_type']);
+    if (module_exists('i18n') && $this->field['settings']['handler_settings']['filter']['language'] == 1 && $entity_info['translation']['locale'] == TRUE) {
+      $node_language = i18n_node_i18n_context_language();
+      if (isset($node_language->language) && !is_null($node_language->language)) {
+       $query->propertyCondition('language', $node_language->language);
       }
+      else {
+       global $language;
+       $query->propertyCondition('language', $language->language);
+      }
+    }
+
+    if (isset($match) && isset($entity_info['entity keys']['label'])) {
+        $query->propertyCondition($entity_info['entity keys']['label'], $match, $match_operator);
     }
 
     // Add a generic entity access tag to the query.
