diff --git a/entityreference.module b/entityreference.module
index 08f5c86..a869a66 100644
--- a/entityreference.module
+++ b/entityreference.module
@@ -1154,13 +1154,36 @@ function entityreference_field_formatter_settings_summary($field, $instance, $vi
  * Implements hook_field_formatter_prepare_view().
  */
 function entityreference_field_formatter_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $displays) {
+  global $language;
   $target_ids = array();
 
   // Collect every possible entity attached to any of the entities.
   foreach ($entities as $id => $entity) {
     foreach ($items[$id] as $delta => $item) {
       if (isset($item['target_id'])) {
-        $target_ids[] = $item['target_id'];
+        if($field['settings']['target_type'] == 'node' && module_enable(array("translation"))) {
+          $tran = translation_node_get_translations($item['target_id']);
+          if (!empty($tran) && isset($tran[$language->language])) {
+            $target_ids[] = $tran[$language->language]->nid;
+          }
+          else {
+            try {
+              $res = db_select('node', 'n')
+                ->fields('n',array('language'))
+                ->condition('n.nid', $item['target_id'], '=')
+                ->execute()
+                ->fetchAssoc();
+              if($res['language'] == $language->language || $res['language'] == LANGUAGE_NONE) {
+                $target_ids[] = $item['target_id'];
+              }
+            } catch (Exception $e) {
+              //drupal_set_message($e->getMessage(), 'error');
+            }
+          }
+        }
+        else {
+          $target_ids[] = $item['target_id'];
+        }
       }
     }
   }
