diff --git ahah_example/ahah_example.module ahah_example/ahah_example.module
index 4a580c0..8772d54 100644
--- ahah_example/ahah_example.module
+++ ahah_example/ahah_example.module
@@ -122,6 +122,8 @@ function ahah_example_callback_helper() {
   $args = $form['#parameters'];
   $form_id = array_shift($args);
   $form_state['post'] = $form['#post'] = $_POST;
+  // Enable the submit/validate handlers to determine whether AHAH-submittted.
+  $form_state['ahah_submission'] = TRUE;
   $form['#programmed'] = $form['#redirect'] = FALSE;
   drupal_process_form($form_id, $form, $form_state);
   $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
diff --git ahah_example/ahah_example_simple_validation.inc ahah_example/ahah_example_simple_validation.inc
index 00f2d52..bed7258 100644
--- ahah_example/ahah_example_simple_validation.inc
+++ ahah_example/ahah_example_simple_validation.inc
@@ -43,27 +43,42 @@ function ahah_example_simple_validation_validate(&$form, &$form_state) {
 		form_set_error('two_words_required', t('You have to enter at least two words'));
 	}
 }
+
+/**
+ * Submit handler for autocheckboxes.
+ * Gets called even when our select is active, so we use the
+ * $form_state to determine whether the submit handler should actually do
+ * anything.
+ */
+function ahah_example_simple_validation_submit($form, &$form_state) {
+  if (!empty($form_state['ahah_submission'])) {
+    return;
+  }
+
+  // Continue to handle submit processing.
+}
+
 /**
  * Callback for autocheckboxes. Process the form with the number of checkboxes
  * we want to provide.
  */
 function ahah_example_simple_validation_callback() {
   $form = ahah_example_callback_helper();
-  
-  // This section prepares the actual output that will be returned to the 
+
+  // This section prepares the actual output that will be returned to the
   // browser.
   $selected_portion = $form['wrapper_fieldset']['two_words_required'];
-  
+
   // To avoid doubling-up the wrapper, we have to remove it here.
   unset($selected_portion['#prefix'], $selected_portion['#suffix']);
-  
+
   // Now render and output.
   $output = drupal_render($selected_portion);
-  
+
   // Include (optionally) the results of any drupal_set_message() calls that
   // may have occurred.
-  $output .= theme('status_messages');  
-  
+  $output .= theme('status_messages');
+
   // Output the results and exit.
   print drupal_json(array('status' => TRUE, 'data' => $output));
   exit();
diff --git ahah_example/autocheckboxes.inc ahah_example/autocheckboxes.inc
index b68647f..5490a01 100644
--- ahah_example/autocheckboxes.inc
+++ ahah_example/autocheckboxes.inc
@@ -22,7 +22,6 @@ function ahah_example_autocheckboxes(&$form_state) {
 
   );
 
-
   $form['checkboxes'] = array(
     '#title' => t("Generated Checkboxes"),
     '#prefix' => '<div id="checkboxes">',
@@ -52,19 +51,33 @@ function ahah_example_autocheckboxes(&$form_state) {
 }
 
 /**
+ * Submit handler for autocheckboxes.
+ * Gets called even when our select is active, so we use the
+ * $form_state to determine whether the submit handler should actually do
+ * anything.
+ */
+function ahah_example_autocheckboxes_submit($form, &$form_state) {
+  if (!empty($form_state['ahah_submission'])) {
+    return;
+  }
+
+  // Continue to handle submit processing.
+}
+
+/**
  * Callback for autocheckboxes. Process the form with the number of checkboxes
  * we want to provide.
  */
 function ahah_example_autocheckboxes_callback() {
   $form = ahah_example_callback_helper();
-	
+
   $checkboxes = $form['checkboxes'];
   // Remove the wrapper so we don't double it up.
   unset($checkboxes['#prefix'], $checkboxes['#suffix']);
 
-  $output = theme('status_messages');  
+  $output = theme('status_messages');
   $output .= drupal_render($checkboxes);
-  
+
   // Final rendering callback.
   print drupal_json(array('status' => TRUE, 'data' => $output));
   exit();
diff --git ahah_example/autotextfields.inc ahah_example/autotextfields.inc
index 8d09b69..5ec518a 100644
--- ahah_example/autotextfields.inc
+++ ahah_example/autotextfields.inc
@@ -63,17 +63,31 @@ function ahah_example_autotextfields(&$form_state) {
   return $form;
 }
 
+/**
+ * Submit handler for autotextfields.
+ * Gets called even when our select is active, so we use the
+ * $form_state to determine whether the submit handler should actually do
+ * anything.
+ */
+function ahah_example_autotextfields_submit($form, &$form_state) {
+  if (!empty($form_state['ahah_submission'])) {
+    return;
+  }
+
+  // Continue to handle submit processing.
+}
+
 
 function ahah_example_autotextfields_callback() {
   $form = ahah_example_callback_helper();
-	
+
   $textfields = $form['textfields'];
-  
+
   // Remove the prefix/suffix wrapper so we don't double it up.
   unset($textfields['#prefix'], $textfields['#suffix']);
-  
+
   // Render the output.
-  $output = theme('status_messages');  
+  $output = theme('status_messages');
   $output .= drupal_render($textfields);
 
   // Final rendering callback.
diff --git ahah_example/dependent_dropdown.inc ahah_example/dependent_dropdown.inc
index a6c0114..f582d1e 100644
--- ahah_example/dependent_dropdown.inc
+++ ahah_example/dependent_dropdown.inc
@@ -109,11 +109,15 @@ function ahah_example_dropdown_continue($form, &$form_state) {
  * Default submit handler for form. This one happens when the main submit
  * button is pressed.
  */
-function ahax_example_dropdown_submit($form, &$form_state) {
+function ahah_example_dropdown_submit($form, &$form_state) {
+  // If an AHAH submission, it's just the dependent dropdown working.
+  if (!empty($form_state['ahah_submission'])) {
+    return;
+  }
 
   if ($form_state['clicked_button']['#id'] == 'edit-submit') {
       $form_state['rebuild'] = FALSE;
-      drupal_set_message(t('Your values have been submitted. dropdown_first=@first, dependent_dropdown=@second', array('@first' => $form_state['values']['dropdown_first'], '@second' => $form_state['values']['dependent_dropdown_wrapper']['dependent_dropdown'])));
+      drupal_set_message(t('Your values have been submitted. master_dropdown=@first, dependent_dropdown=@second', array('@first' => $form_state['values']['master_dropdown'], '@second' => $form_state['values']['dependent_dropdown_holder']['dependent_dropdown'])));
   }
 
   // edit-next or anything else will cause rebuild.
