--- webform_conditional.module.orig	2011-04-04 22:51:30.000000000 -0500
+++ webform_conditional.module	2011-08-30 13:21:02.000000000 -0500
@@ -201,11 +201,10 @@ function webform_conditional_element_aft
     $was_hidden = _webform_conditional_was_hidden($form_element['#webform_component']['cid'], $components);
     if ($was_hidden) {
       $form_element['#required'] = FALSE;
-      _webform_condtional_clear_element_values($form_element);
+      _webform_condtional_clear_element_values($form_element, $form_state);
     }
   }
   return $form_element;
-
 }
 /**
  * This any component this return the CSS id that Webform creates for the div element that wraps a component
@@ -265,19 +264,20 @@ function _webform_conditional_get_submit
  * Clear the submitted values for an element
  * @param $element
  */
-function _webform_condtional_clear_element_values(&$element) {
+function _webform_condtional_clear_element_values(&$element, &$form_state) {
   if ($element['#type'] == 'markup') {
     //markup fields don't have user input to clear
     return;
   }
   if (is_array($element['#value'])) {
-
     foreach ($element['#value'] as $key => $value) {
       $element['#value'][$key] = '';
+      $element_cleared[$key] = '';
     }
   }
   else {
     $element['#value'] = '';
+    $element_cleared = '';
   }
   //handle special cases for certian types
   switch ($element['#type']) {
@@ -285,9 +285,20 @@ function _webform_condtional_clear_eleme
       $element['month']['#value'] = '';
       $element['day']['#value'] = '';
       $element['year']['#value'] = '';
+      $element_cleared['month'] = '';
+      $element_cleared['day'] = '';
+      $element_cleared['year'] = '';
       break;
       //@todo Add other comoponet types that need special clearing logic
   }
+  
+  // Also clear the $form_state values of hidden fields so that they are
+  // never stored anywhere or handled by submit callbacks.
+  $clear_array = "\$form_state[values]";
+  foreach ($element['#array_parents'] as $value) {
+    $clear_array .= '[' . $value . ']';
+  }
+  eval($clear_array . " = \$element_cleared;");
 }
 /**
  * Return components of current page only
