diff --git a/entityreference.module b/entityreference.module
index a9893ab..f6a8984 100644
--- a/entityreference.module
+++ b/entityreference.module
@@ -1082,12 +1082,16 @@ function entityreference_field_formatter_info() {
       'field types' => array('entityreference'),
       'settings' => array(
         'link' => FALSE,
+        'use_content_language' => TRUE,
       ),
     ),
     'entityreference_entity_id' => array(
       'label' => t('Entity id'),
       'description' => t('Display the id of the referenced entities.'),
       'field types' => array('entityreference'),
+      'settings' => array(
+        'use_content_language' => TRUE,
+      ),
     ),
     'entityreference_entity_view' => array(
       'label' => t('Rendered entity'),
@@ -1096,6 +1100,7 @@ function entityreference_field_formatter_info() {
       'settings' => array(
         'view_mode' => 'default',
         'links' => TRUE,
+        'use_content_language' => TRUE,
       ),
     ),
   );
@@ -1140,6 +1145,12 @@ function entityreference_field_formatter_settings_form($field, $instance, $view_
     );
   }
 
+  $element['use_content_language'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use current content language'),
+    '#default_value' => $settings['use_content_language'],
+  );
+
   return $element;
 }
 
@@ -1166,6 +1177,8 @@ function entityreference_field_formatter_settings_summary($field, $instance, $vi
     $summary[] = !empty($settings['links']) ? t('Display links') : t('Do not display links');
   }
 
+  $summary[] = !empty($settings['use_content_language']) ? t('Use current content language') : t('Use field language');
+
   return implode('<br />', $summary);
 }
 
@@ -1198,6 +1211,22 @@ function entityreference_field_formatter_prepare_view($entity_type, $entities, $
     foreach ($items[$id] as $delta => $item) {
       // Check whether the referenced entity could be loaded.
       if (isset($target_entities[$item['target_id']])) {
+        // Check display settings.
+        if (!empty($displays[$id]['settings']['use_content_language'])) {
+          // Check if there is tnid for the target entity.
+          if (isset($target_entities[$item['target_id']]->tnid) && !empty($target_entities[$item['target_id']]->tnid) && !empty($GLOBALS['language_content']->language)) {
+            // Get node translations.
+            $translations = translation_node_get_translations($target_entities[$item['target_id']]->tnid);
+
+            // If translation nid is different then the target nid load the
+            // translated node and replace the target_id and the entity.
+            if ($translations[$GLOBALS['language_content']->language]->nid != $item['target_id'] && $translation_entity = node_load($translations[$GLOBALS['language_content']->language]->nid)) {
+              $item['target_id'] = $translation_entity->nid;
+              $target_entities[$item['target_id']] = $translation_entity;
+            }
+          }
+        }
+
         // Replace the instance value with the term data.
         $items[$id][$delta]['entity'] = $target_entities[$item['target_id']];
         // Check whether the user has access to the referenced entity.
