From 7b51b277c6d2f35be627cd418daf150ac4a91dd0 Mon Sep 17 00:00:00 2001
From: flow <f.weber@digi-info.de>
Date: Mon, 11 Apr 2011 16:36:41 +0200
Subject: [PATCH] Issue #1046234 by webflo: node reference issue with content translation

---
 node_reference/node_reference.module |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/node_reference/node_reference.module b/node_reference/node_reference.module
index 11db51b..ff05a3d 100644
--- a/node_reference/node_reference.module
+++ b/node_reference/node_reference.module
@@ -760,28 +760,30 @@ function node_reference_preprocess_node(&$vars) {
 function node_reference_field_prepare_translation($entity_type, $entity, $field, $instance, $langcode, &$items) {
   $addition = array();
   $addition[$field['field_name']] = array();
+  $source_language = $entity->translation_source->language;
   if (isset($entity->translation_source->$field['field_name'])
   && is_array($entity->translation_source->$field['field_name'])) {
-    foreach ($entity->translation_source->$field['field_name'] as $key => $reference) {
+    $references = $entity->translation_source->$field['field_name'];
+    foreach ($references[$source_language] as $key => $reference) {
       $reference_node = node_load($reference['nid']);
       // Test if the referenced node type is translatable and, if so,
       // load translations if the reference is not for the current language.
       // We can assume the translation module is present because it invokes 'prepare translation'.
       if (translation_supported_type($reference_node->type)
       && !empty($reference_node->language)
-      && $reference_node->language != $node->language
+      && $reference_node->language != $entity->language
       && $translations = translation_node_get_translations($reference_node->tnid)) {
         // If there is a translation for the current language, use it.
         $addition[$field['field_name']][] = array(
-          'nid' => isset($translations[$node->language])
-            ? $translations[$node->language]->nid
+          'nid' => isset($translations[$entity->language])
+            ? $translations[$entity->language]->nid
             : $reference['nid'],
         );
       }
     }
   }
 
-  return $addition;
+  $items = $addition[$field['field_name']];
 }
 
 /**
-- 
1.7.3.4

