Index: conditional_fields.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/conditional_fields/conditional_fields.module,v
retrieving revision 1.1.2.22.2.40
diff -u -p -r1.1.2.22.2.40 conditional_fields.module
--- conditional_fields.module	11 Jun 2009 14:39:54 -0000	1.1.2.22.2.40
+++ conditional_fields.module	17 Jun 2009 15:10:44 -0000
@@ -197,6 +197,8 @@ function conditional_fields_nodeapi(&$no
       return;
     }
     
+    $current_values = array();
+
     foreach ($data as $field) {
       
       // We might have to look for the field in a group
@@ -222,18 +224,22 @@ function conditional_fields_nodeapi(&$no
       if ($controlling_group && !$node->content[$controlling_group]['group'][$field['control_field_name']]) {
         continue;
       }
-      
+
       $viewed = FALSE;
-      
-      // Create an array with the selected controlling field's values      
-      // Check if the controlling field is viewed as well
-      foreach ((array)$node->$field['control_field_name'] as $value) {
-        $current_values[$field['control_field_name']] = $value['value'];
-        if (!empty($value['value']) && $node->content[$field['control_field_name']]['field']['#access'] == TRUE) {
-          $viewed = TRUE;
-        } 
-      }
 
+      if (!isset($current_values[$field['control_field_name']])) {
+        $current_values[$field['control_field_name']] = array();
+        
+        // Create an array with the selected controlling field's values      
+        // Check if the controlling field is viewed as well
+        foreach ((array)$node->$field['control_field_name'] as $value) {
+          $current_values[$field['control_field_name']][] = $value['value'];
+          if (!empty($value['value']) && $node->content[$field['control_field_name']]['field']['#access'] == TRUE) {
+            $viewed = TRUE;
+          } 
+        }
+      }
+      
       if ($viewed) {
         // Hide the controlled field if it is not triggered
         if (!conditional_fields_is_triggered($current_values[$field['control_field_name']], $field['trigger_values'])) {
