Index: views_fusion.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_fusion/views_fusion.module,v
retrieving revision 1.14
diff -u -r1.14 views_fusion.module
--- views_fusion.module	12 May 2007 13:34:46 -0000	1.14
+++ views_fusion.module	26 Oct 2008 08:11:29 -0000
@@ -341,6 +341,17 @@
       
       //join new node table for the fused view
       $joininfo = $table_data[$fuse_view->use_alias_prefix . 'node']['join'];
+
+      // Get correct table name
+      $joininfo['left']['table'] = $fusion->uses;
+
+      // get correct column
+      if ($fusion->uses =='nodefamily_parent'){
+        $joininfo['left']['field'] = 'child_nid';
+      } else {
+        $joininfo['left']['field'] = 'parent_nid';
+      }
+
       if ($num > 1) {
         $joininfo['left']['table'] = $joininfo['left']['table'] . $num;
       }
@@ -399,11 +410,20 @@
   } 
   
   $query1->tablequeue = array_merge($query1->tablequeue, $query2->tablequeue);
-  $query1->joins = array_merge($query1->joins, $query2->joins);
+  // Joins
+  foreach ($query2->joins as $table => $joins) {
+    foreach ($joins as $num => $join) {
+      $query1->joins[$table][$num] = $join;
+    }
+  }
   $query1->fields = array_merge($query1->fields, $query2->fields);
   $query1->where = array_merge($query1->where, $query2->where); 
   $query1->where_args = array_merge($query1->where_args, $query2->where_args);
   $query1->orderby = array_merge($query1->orderby, $query2->orderby);  
+  // Tables
+  foreach ($query2->tables as $table => $num) {
+   $query1->tables[$table] = (isset($query1->tables[$table]) ? max($query1->tables[$table], $num) : $num);
+  }
 }
 
 /*
@@ -427,6 +447,7 @@
   
   $view1->exposed_filter = array_merge($view1->exposed_filter, $view2->exposed_filter);
   $view1->argument = array_merge($view1->argument, $view2->argument);
+  $view1->filter = array_merge($view1->filter, $view2->filter);
 }
 
 

