--- ./i18nstrings/i18nstrings.module.orig	2009-08-06 14:47:53.000000000 +0200
+++ ./i18nstrings/i18nstrings.module	2009-08-06 14:44:02.000000000 +0200
@@ -243,7 +243,7 @@
   // If current language add to l10n client list for later on page translation.
   // If language were the default one we are not supossed to reach here.
   if ($language->language == $langcode && function_exists('l10_client_add_string_to_page')) {
-    l10_client_add_string_to_page($string, $translation, $source->textgroup);
+    l10_client_add_string_to_page($string, $translation);
   }
   return ($translation === TRUE) ? $string : $translation;
 }
--- ./i18nmenu/i18nmenu.module.orig	2009-08-06 10:43:06.000000000 +0200
+++ ./i18nmenu/i18nmenu.module	2009-08-06 10:43:06.000000000 +0200
@@ -324,7 +324,7 @@
       }
       break;
     case 'prepare translation':
-      if (!$node->menu->mlid && !empty($node->translation_source)) {
+      if (empty($node->menu['mlid']) && !empty($node->translation_source)) {
         $tnode = $node->translation_source;
         // Prepare the tnode so the menu item will be available.
         node_object_prepare($tnode);
--- ./i18nviews/i18nviews.module.orig	2009-08-06 10:43:08.000000000 +0200
+++ ./i18nviews/i18nviews.module	2009-08-06 10:43:08.000000000 +0200
@@ -67,7 +67,7 @@
 
   // Translate taxonomy fields.
   // @todo I don think this works at all.
-  if (module_exists('i18ntaxonomy') && is_array($view->field)) {
+  if (module_exists('i18ntaxonomy') && isset($view->field) && is_array($view->field)) {
     $translate = variable_get('i18ntaxonomy_vocabularies', array());
     foreach ($view->field as $index => $data) {
       $matches = array();
--- ./i18n.module.orig	2009-08-06 10:43:06.000000000 +0200
+++ ./i18n.module	2009-08-06 10:43:05.000000000 +0200
@@ -301,7 +301,7 @@
     if ($node_edit || $node_translate) {
       $node_language = $node_edit ? $node->language : $_GET['language'];
       // Only needed if the node language is different from the interface one.
-      if ($node->language != $language->language) {
+      if ($node_language != $language->language) {
         $languages = language_list();
         if (isset($languages[$node_language])) {
           drupal_add_js(drupal_get_path('module', 'i18n') . '/i18n.js');
--- ./i18n.pages.inc.orig	2009-08-06 10:43:06.000000000 +0200
+++ ./i18n.pages.inc	2009-08-06 10:43:05.000000000 +0200
@@ -262,6 +262,9 @@
 function theme_i18n_node_select_translation(&$elements) {
   $output = '';
   $rows = array();
+  if (!isset($elements['nid'])) {
+    return;
+  }
   foreach (element_children($elements['nid']) as $lang) {
     $rows[] = array(
       drupal_render($elements['language'][$lang]),
