Index: modules/translation/translation.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/translation/translation.module,v
retrieving revision 1.78
diff -u -p -r1.78 translation.module
--- modules/translation/translation.module	24 Mar 2010 09:27:14 -0000	1.78
+++ modules/translation/translation.module	11 Apr 2010 20:00:29 -0000
@@ -426,9 +426,19 @@ function translation_supported_type($typ
 function translation_path_get_translations($path) {
   $paths = array();
   // Check for a node related path, and for its translations.
-  if ((preg_match("!^node/([0-9]+)(/.+|)$!", $path, $matches)) && ($node = node_load((int)$matches[1])) && !empty($node->tnid)) {
-    foreach (translation_node_get_translations($node->tnid) as $language => $translation_node) {
-      $paths[$language] = 'node/' . $translation_node->nid . $matches[2];
+  if ((preg_match("!^node/([0-9]+)(/.+|)$!", $path, $matches)) && ($node = node_load((int)$matches[1]))) {
+    $translations = translation_node_get_translations($node->tnid);
+    if (!empty($translations)) {
+      foreach ($translations as $language => $translation_node) {
+        $paths[$language] = 'node/'. $translation_node->nid . $matches[2];
+      }
+    }
+    else {
+      if ($node->language != LANGUAGE_NONE) {
+        // If the current node has no translation but has a language assigned,
+        // return it.
+        $paths[$node->language] = 'node/'. $node->nid;
+      }
     }
   }
   return $paths;
