diff --git a/entityreference.module b/entityreference.module
index f01ef7b..1959e23 100644
--- a/entityreference.module
+++ b/entityreference.module
@@ -1169,13 +1169,37 @@ 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 = db_select('node', 'n')->fields('n', array('tnid','language'))->condition('n.nid', $item['target_id'], '=')->execute()->fetchAssoc();
+          if($tran['tnid'] == 0 && ($tran['language'] == $language->language || $tran['language'] == LANGUAGE_NONE)){
+            $target_ids[] = $item['target_id'];
+          }
+          else if($tran['tnid'] != 0) {
+            $result = db_select('node', 'n')->fields('n', array('nid','language'))->condition('n.tnid', $tran['tnid'], '=')->execute();
+
+            if($result->rowCount() > 0) {
+              $list = array();
+              while ($row = $result->fetchAssoc()) {
+                if($row['language'] == $language->language || $row['language'] == LANGUAGE_NONE){
+                  $items[$id][$delta]['target_id'] = $target_ids[$delta] = $row['nid'];
+                }
+
+              }
+            }
+          }
+
+        }
+        else {
+          $target_ids[$delta] = $item['target_id'];
+        }
       }
     }
   }
