diff --git a/plugins/selection/EntityReference_SelectionHandler_Translation_Generic.class.php b/plugins/selection/EntityReference_SelectionHandler_Translation_Generic.class.php
index 45185ba..ce652fd 100644
--- a/plugins/selection/EntityReference_SelectionHandler_Translation_Generic.class.php
+++ b/plugins/selection/EntityReference_SelectionHandler_Translation_Generic.class.php
@@ -52,6 +52,13 @@ class EntityReference_SelectionHandler_Translation_Generic_node extends EntityRe
         $query->condition("$base_table.language", $node_language->language);
       }
     }
+    elseif ($this->field['settings']['handler_settings']['filter']['language'] == 3 && $entity_info['translation']['locale'] == TRUE) {
+      $term_language = i18n_language_context();
+      if (isset($term_language->language) && !is_null($term_language->language)) {
+        $query->innerJoin("entity_translation", "et", "et.entity_id = $base_table.nid");
+        $query->condition("et.language", $term_language->language);
+      }
+    }
     else {
       global $language;
       $query->condition("$base_table.language", $language->language);
@@ -119,6 +126,7 @@ class EntityReference_SelectionHandler_Translation_Generic_taxonomy_term extends
       '#options' => array(
         0 => t('Select all terms matching with the interface language'),
         1 => t('Select only terms matching the parent\'s language'),
+        3 => t('Select only terms matching the context\'s language by field'),
       ),
       '#default_value' => isset($field['settings']['handler_settings']['filter']['language']) ? $field['settings']['handler_settings']['filter']['language'] : 0,
     );
