Index: globalredirect.module
===================================================================
--- globalredirect.module	(revision 1040)
+++ globalredirect.module	(working copy)
@@ -126,7 +126,32 @@
         }
     }
 
-
+    // If Content Translation module is enabled then check the path is correct
+    if (module_exists('translation') && (arg(0) == 'node') && is_numeric(arg(1)) && (arg(2) == '')) {
+      switch(variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE)) {
+        case LANGUAGE_NEGOTIATION_PATH_DEFAULT:
+        case LANGUAGE_NEGOTIATION_PATH:
+          // Check if there's a translation for the current language of the requested node...
+          $node_translations = translation_path_get_translations('node/'. arg(1));
+          // If there is, go to the translation.
+          if (!empty($node_translations[$language->language]) && $node_translations[$language->language] != 'node/'. arg(1)) {
+            drupal_goto($node_translations[$language->language]);
+          }
+          // If there is no translation, change the language to fit the content!
+          else {
+            $node = node_load(arg(1));
+            if ($node->language != $language->language) {
+              $all_languages = language_list();
+              // Change the global $language's prefix, to make drupal_goto()
+              // follow the proper prefix
+              $language = $all_languages[$node->language];
+              drupal_goto(drupal_get_path_alias('node/'. $node->nid));
+            }
+          }
+          break;
+      }
+    }
+    
     // Find an alias (if any) for the request
     $alias = drupal_get_path_alias($request, $options['language']->language);
     if (function_exists('custom_url_rewrite_outbound')) {
