Index: modules/translation/translation.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/translation/translation.module,v
retrieving revision 1.84
diff -u -r1.84 translation.module
--- modules/translation/translation.module	9 Sep 2010 23:01:48 -0000	1.84
+++ modules/translation/translation.module	30 Sep 2010 10:06:20 -0000
@@ -272,6 +272,8 @@
         ))
         ->condition('nid', $node->nid)
         ->execute();
+      // Save tnid to avoid loss in case of resave.
+      $node->tnid = $tnid;
     }
   }
 }
Index: modules/translation/translation.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/translation/translation.test,v
retrieving revision 1.29
diff -u -r1.29 translation.test
--- modules/translation/translation.test	5 Aug 2010 23:53:39 -0000	1.29
+++ modules/translation/translation.test	30 Sep 2010 10:06:20 -0000
@@ -13,7 +13,7 @@
   }
 
   function setUp() {
-    parent::setUp('locale', 'translation');
+    parent::setUp('locale', 'translation', 'translation_test');
   }
 
   /**
@@ -148,7 +148,7 @@
   /**
    * Create a translation for the specified basic page in the specified language.
    *
-   * @param integer $nid Node id of basic page to create translation for.
+   * @param object $node The basic page to create translation for.
    * @param string $title Title of basic page in specified language.
    * @param string $body Body of basic page in specified language.
    * @param string $language Language code.
@@ -167,9 +167,10 @@
     $this->assertRaw(t('Basic page %title has been created.', array('%title' => $title)), t('Translation created.'));
 
     // Check to make sure that translation was successful.
-    $node = $this->drupalGetNodeByTitle($title);
-    $this->assertTrue($node, t('Node found in database.'));
+    $translation = $this->drupalGetNodeByTitle($title);
+    $this->assertTrue($translation, t('Node found in database.'));
+    $this->assertTrue($translation->tnid == $node->nid, t('Translation set id correctly stored.'));
 
-    return $node;
+    return $translation;
   }
 }
Index: modules/translation/tests/translation_test.module
===================================================================
RCS file: modules/translation/tests/translation_test.module
diff -N modules/translation/tests/translation_test.module
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/translation/tests/translation_test.module	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,14 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Mock module for content translation tests.
+ */
+
+/**
+ * Implements hook_node_insert().
+ */
+function translation_test_node_insert($node) {
+  drupal_write_record('node', $node, 'nid');
+}
Index: modules/translation/tests/translation_test.info
===================================================================
RCS file: modules/translation/tests/translation_test.info
diff -N modules/translation/tests/translation_test.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/translation/tests/translation_test.info	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,8 @@
+; $Id$
+name = "Content Translation Test"
+description = "Support module for the content translation tests."
+core = 7.x
+package = Testing
+files[] = translation_test.module
+version = VERSION
+hidden = TRUE
