diff --git a/webform_conditional.module b/webform_conditional.module
index e0c50ea..0e0af70 100755
--- a/webform_conditional.module
+++ b/webform_conditional.module
@@ -68,10 +68,10 @@ function webform_condtional_component_edit_submit($form, &$form_state) {
 }
 /*
  * Implements hook_form_alter().
- * Edit Webform
- * Add Javascript to describe dependent fields
- * Add validation of hidden conditional fields
- */
+* Edit Webform
+* Add Javascript to describe dependent fields
+* Add validation of hidden conditional fields
+*/
 function webform_conditional_form_alter(&$form, $form_state, $form_id) {
   //todo: change to look only at beginning of string
   static $called_forms = array();
@@ -201,7 +201,7 @@ function webform_conditional_element_after_build($form_element, &$form_state) {
     $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;
@@ -230,7 +230,7 @@ function _webform_conditional_get_css_id($nid, $cid) {
   return "webform-component-$css_id";
 }
 /**
- * Function run #after_build on webform.  This ensures that Javascript is added even if form is built from cache. 
+ * Function run #after_build on webform.  This ensures that Javascript is added even if form is built from cache.
  * @param array $form
  * @param array $form_state
  * @return array
@@ -269,7 +269,7 @@ function _webform_conditional_get_submitted_values($form_state) {
  * 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 (!isset($element['#type']) || $element['#type'] == 'markup') {
     //markup fields don't have user input to clear
     //markup is default
@@ -285,6 +285,7 @@ function _webform_condtional_clear_element_values(&$element) {
     $element['#value'] = '';
   }
   //handle special cases for certian types
+  // @todo is possible to just search thru all sub-array just clear value properties - instead of specific logic for fields like "date"
   switch ($element['#type']) {
     case 'date':
       $element['month']['#value'] = '';
@@ -293,6 +294,34 @@ function _webform_condtional_clear_element_values(&$element) {
       break;
       //@todo Add other comoponet types that need special clearing logic
   }
+  // also must clear value in $form_state['values'] so it is not seen by other functions
+  $reference_element = FALSE;
+  $reference_set = FALSE;
+  //loop thru array_parents to find var to reference under "values"
+  foreach ($element['#array_parents'] as $key) {
+    if (!$reference_element) {
+      $reference_element =& $form_state['values'];
+    }
+    //should always be set but just in case
+    if (isset($reference_element[$key])) {
+      $reference_set = TRUE;
+      $reference_element =& $reference_element[$key];
+    }
+    else
+    {
+      $reference_set = FALSE;
+      break;
+    }
+  }
+  if ($reference_set) {
+    if (is_array($reference_element)) {
+      $reference_element = array();
+    }
+    else
+    {
+      $reference_element = '';
+    }
+  }
 }
 /**
  * Return components of current page only
@@ -422,7 +451,7 @@ function _webform_conditional_possible_trigger_components($nid, $cid, $return_gr
   $trigger_types = webform_conditional_trigger_types();
   $get_component_types = array_merge($trigger_types, array('pagebreak', 'fieldset'));
   if (!$new_component) {
-	  //** all a fieldset can't be dependent on a field contained in itself(check pid)
+    //** all a fieldset can't be dependent on a field contained in itself(check pid)
     $baseComponent = _webform_conditional_get_base_component($nid, $cid);
     $sql = "SELECT name, form_key, type, extra,cid, weight,pid FROM {webform_component} WHERE nid = %d and pid <> %d and (cid = %d OR type in (" . db_placeholders($get_component_types, 'varchar') . ")) order by weight ASC ";
     $sql_args = array_merge(array($nid, $cid, $cid), $get_component_types);
