Index: nodereferrer.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodereferrer/nodereferrer.module,v
retrieving revision 1.17.2.8
diff -u -p -r1.17.2.8 nodereferrer.module
--- nodereferrer.module	1 Feb 2011 23:45:50 -0000	1.17.2.8
+++ nodereferrer.module	8 Feb 2011 15:13:58 -0000
@@ -136,7 +136,18 @@ function nodereferrer_field($op, &$node,
       $fields = isset($field['referrer_fields']) ? array_values(array_filter($field['referrer_fields'])) : array();
       $order = $field['referrer_order'];
       $translations = isset($field['referrer_translations']) ? $field['referrer_translations'] : 0;
+      if (function_exists('i18n_selection_mode')) {
+        if ($node->language) {
+          i18n_selection_mode('node', $node->language);
+        }
+        else {
+          i18n_selection_mode('off');
+        }
+      }
       $values = nodereferrer_referrers($node->nid, $fields, $types, $translations, $order);
+      if (function_exists('i18n_selection_mode')) {
+        i18n_selection_mode('reset');
+      }
       // Pass referring node objects into CCK content_load() cache. 24/08/2006 sun
       $items = array();
       foreach ($values as $nid => $rnode) {
@@ -164,7 +175,19 @@ function nodereferrer_field($op, &$node,
 
       // clear any modules referring to me as my title or other data may change.
       // and nodereference doesn't clear the cache yet.
-      foreach (nodereferrer_referrers($node->nid, $fields, $types, false) as $delta => $item) {
+      if (function_exists('i18n_selection_mode')) {
+        if ($node->language) {
+          i18n_selection_mode('node', $node->language);
+        }
+        else {
+          i18n_selection_mode('off');
+        }
+      }
+      $values = nodereferrer_referrers($node->nid, $fields, $types, false);
+      if (function_exists('i18n_selection_mode')) {
+        i18n_selection_mode('reset');
+      }
+      foreach ($values as $delta => $item) {
         $cid = 'content:' . $item['nid'] . ':' . $item['vid'];
         cache_clear_all($cid, 'cache_page');
       }
@@ -490,7 +513,18 @@ function nodereferrer_nodeapi($node, $op
       // updated. @note this currenlty doesn't work all that well since nodereference
       // doesn't respect publishing states or access control.
       if (isset($node->nid)) {
+        if (function_exists('i18n_selection_mode')) {
+          if ($node->language) {
+            i18n_selection_mode('node', $node->language);
+          }
+          else {
+            i18n_selection_mode('off');
+          }
+        }
         $referrers = nodereferrer_referrers($node->nid);
+        if (function_exists('i18n_selection_mode')) {
+          i18n_selection_mode('reset');
+        }        
         $referrer_nids = array_keys($referrers);
         $nids = array_merge($nids, $referrer_nids);
       }
