--- i18n.module	2010-06-08 19:30:30.000000000 +0200
+++ i18n.module	2010-06-19 15:20:38.000000000 +0200
@@ -450,11 +450,11 @@
       // Mixed mode is a bit more complex, we need to join in one more table
       // and add some more conditions, but only if language is not default.
       if ($mode == 'mixed') {
         $result['where'] = i18n_db_rewrite_where($primary_table, 'node', 'simple');
         if (i18n_get_lang() != i18n_default_language()) {
-          $result['join'] = "LEFT JOIN {node} i18n ON $primary_table.tnid > 0 AND $primary_table.tnid = i18n.tnid AND i18n.language = '". i18n_get_lang() ."'";
+          $result['join'] = "LEFT JOIN {node} i18n ON $primary_table.tnid > 0 AND $primary_table.nid = i18n.tnid AND i18n.language = '". i18n_get_lang() ."'";
           // So we show also nodes that have default language.
           $result['where'] .= " OR $primary_table.language = '". i18n_default_language() ."' AND i18n.nid IS NULL";
         }
       }
       else {
