diff -upr ../conditional_fields_orig/conditional_fields.js conditional_fields/conditional_fields.js
--- ../conditional_fields_orig/conditional_fields.js    2009-08-16 02:40:00.000000000 +1000
+++ conditional_fields/conditional_fields.js    2009-11-26 20:00:18.000000000 +1000
@@ -10,15 +10,19 @@ Drupal.ConditionalFields.switchField = f
     if (controllingField == id) {
       /* Find the settings of the controlled field */
       $.each(controlledFields, function(i, fieldSettings) {
-        Drupal.ConditionalFields.doAnimation(fieldSettings, 'hide', onPageReady);
+        var hide = true;
         /* Find the trigger values of the controlled field (for this controlling field) */
         $.each(fieldSettings.trigger_values, function(ii, val) {
           if (jQuery.inArray(val, values) != -1) {
-            Drupal.ConditionalFields.doAnimation(fieldSettings, 'show', onPageReady);
+            Drupal.ConditionalFields.doAnimation(fieldSettings, 'show', onPageReady);
+            hide = false;
             /* Stop searching in this field */
             return false;
           }
         });
+        if (hide) {
+          Drupal.ConditionalFields.doAnimation(fieldSettings, 'hide', onPageReady);
+        }
         /* To do: Feature: Multiple controlling fields on the same field, are
            not supported for now. Test: other controlling fields types and widgets. */
       });
@@ -81,7 +85,7 @@ Drupal.ConditionalFields.findValues = fu
     }
   });
   return values;
-}
+}

 Drupal.ConditionalFields.fieldChange = function() {
   var values = Drupal.ConditionalFields.findValues($(this));
