diff --git a/field_collection.module b/field_collection.module
index db7b859..c44c69c 100644
--- a/field_collection.module
+++ b/field_collection.module
@@ -101,6 +101,31 @@ function field_collection_field_name_load($arg) {
  */
 function field_collection_item_load($item_id, $reset = FALSE) {
   $result = field_collection_item_load_multiple(array($item_id), array(), $reset);
+  if(isset($_REQUEST['translation']) && isset($_REQUEST['target'])){
+    $target_langcode = $_REQUEST['target'];
+    foreach($result as $id => $field){
+      $keys = array_keys((array) $field);
+      foreach($keys as $field_name){
+        $pos = strpos($field_name,'field');
+        if($pos === 0){
+          if(!isset($field->{$field_name}['und'])){
+            continue;
+          }
+          foreach($field->{$field_name}['und'] as $f_acabado_index => $f_acabado){
+            if(isset($field->{$field_name}['und'][$f_acabado_index]['target_id'])){
+              $node = node_load($field->{$field_name}['und'][$f_acabado_index]['target_id']);
+              if($node){
+                $trans = translation_node_get_translations($node->tnid);
+                if(isset($trans[$target_langcode]->nid)){
+                  $field->{$field_name}['und'][$f_acabado_index]['target_id'] = $trans[$target_langcode]->nid;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
   return $result ? reset($result) : FALSE;
 }
 
