Index: API.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/hierarchical_select/API.txt,v
retrieving revision 1.49
diff -u -F^f -r1.49 API.txt
--- API.txt	21 Jul 2008 17:49:35 -0000	1.49
+++ API.txt	5 Aug 2008 22:55:54 -0000
@@ -382,6 +382,7 @@ function to set the configuration of a c
   }
 
 The following events are triggered:
+  - change-hierarchical-select
   - update-hierarchical-select
   - create-new-item
   - cancel-new-item
Index: hierarchical_select.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/hierarchical_select/hierarchical_select.js,v
retrieving revision 1.69
diff -u -F^f -r1.69 hierarchical_select.js
--- hierarchical_select.js	5 Aug 2008 22:32:09 -0000	1.69
+++ hierarchical_select.js	5 Aug 2008 22:55:55 -0000
@@ -289,6 +289,9 @@
           $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select > select', Drupal.HierarchicalSelect.context)
           .slice(lastUnchanged)
           .remove();
+
+          // The selection of this hierarchical select has changed!
+          Drupal.HierarchicalSelect.triggerEvents(hsid, 'change-hierarchical-select', settings);
         });
         return;
       }
@@ -340,6 +343,11 @@
         }
 
         Drupal.HierarchicalSelect.triggerEvents(hsid, updateType, settings);
+
+        if (updateType == 'update-hierarchical-select') {
+          // The selection of this hierarchical select has changed!
+          Drupal.HierarchicalSelect.triggerEvents(hsid, 'change-hierarchical-select', settings);
+        }
       });
     }
   };
@@ -350,7 +358,7 @@
   // - the cache system is running.
   // Otherwise, perform a normal dynamic form submit.
   if (updateType == 'update-hierarchical-select' && Drupal.HierarchicalSelect.cache != null && Drupal.HierarchicalSelect.cache.status()) {
-    Drupal.HierarchicalSelect.cache.updateHierarchicalSelect(hsid, value, lastUnchanged, ajaxOptions);
+    Drupal.HierarchicalSelect.cache.updateHierarchicalSelect(hsid, value, settings, lastUnchanged, ajaxOptions);
   }
   else {
     Drupal.HierarchicalSelect.preUpdateAnimations(hsid, updateType, lastUnchanged, function() {
Index: hierarchical_select_cache.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/hierarchical_select/hierarchical_select_cache.js,v
retrieving revision 1.5
diff -u -F^f -r1.5 hierarchical_select_cache.js
--- hierarchical_select_cache.js	5 Aug 2008 22:34:16 -0000	1.5
+++ hierarchical_select_cache.js	5 Aug 2008 22:55:55 -0000
@@ -191,7 +191,7 @@
   }
 };
 
-Drupal.HierarchicalSelect.cache.updateHierarchicalSelect = function(hsid, value, lastUnchanged, ajaxOptions) {
+Drupal.HierarchicalSelect.cache.updateHierarchicalSelect = function(hsid, value, settings, lastUnchanged, ajaxOptions) {
   // If the selected value has children
   Drupal.HierarchicalSelect.cache.hasChildren(hsid, value, function() {
     console.log("Cache hit.");
@@ -210,7 +210,10 @@
           // Reattach the bindings.
           Drupal.HierarchicalSelect.attachBindings(hsid);
 
-          Drupal.HierarchicalSelect.triggerEvents(hsid, 'update-hierarchical-select');
+          Drupal.HierarchicalSelect.triggerEvents(hsid, 'update-hierarchical-select', settings);
+
+          // The selection of this hierarchical select has changed!
+          Drupal.HierarchicalSelect.triggerEvents(hsid, 'change-hierarchical-select', settings);
         });
       });
     });   
