--- /sites/all/modules/conditional_fields/conditional_fields.module	(revision 26498)
+++ /sites/all/modules/conditional_fields/conditional_fields.module	(working copy)
@@ -141,10 +141,16 @@
   );
   $form['reset_default'] = array(
     '#type' => 'checkbox',
-    '#title' => t('Reset untriggered fields to default values'),
+    '#title' => t('Reset untriggered fields to default values on save'),
     '#description' => t('Select this box to reset untriggered controlled fields to their default values when saving a node.'),
     '#default_value' => variable_get('c_fields_reset_default_' . $type, 1)
   );
+  $form['reset_default_preview'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Reset untriggered fields to default values on preview'),
+    '#description' => t('Select this box to reset untriggered controlled fields to their default values when previewing a node.'),
+    '#default_value' => variable_get('c_fields_reset_default_preview_' . $type, 1)
+  );
   $form['show_all'] = array(
     '#type' => 'checkbox',
     '#title' => t('Administrators see all fields'),
@@ -174,6 +180,7 @@
   variable_set('c_fields_view_' . $type, $form_state['values']['orphaned_view']);
   variable_set('c_fields_edit_' . $type, $form_state['values']['orphaned_edit']);
   variable_set('c_fields_reset_default_' . $type, $form_state['values']['reset_default']);
+  variable_set('c_fields_reset_default_preview_' . $type, $form_state['values']['reset_default_preview']);
   variable_set('c_fields_show_all_' . $type, $form_state['values']['show_all']);
 
   drupal_set_message(t('Conditional fields options for this content type saved.') . $message);
@@ -796,10 +803,17 @@
         if (variable_get('c_fields_reset_default_' . $form['type']['#value'], 1) &&
           !in_array('node_form_build_preview', $form_state['submit_handlers']) &&
           is_array($form['#field_info'][$row['field_name']]['widget']['default_value'])) {
-          foreach ($form['#field_info'][$row['field_name']]['widget']['default_value'] as $delta => $value) {
-            $form_state['values'][$row['field_name']][$delta]['value'] = $value['value'];
+          foreach ($form_state['values'][$row['field_name']] as $delta => $value) {
+            $form_state['values'][$row['field_name']][$delta] = $form['#field_info'][$row['field_name']]['widget']['default_value'][0];
           }
         }
+        elseif (variable_get('c_fields_reset_default_preview_' . $form['type']['#value'], 1) &&
+          in_array('node_form_build_preview', $form_state['submit_handlers']) &&
+          is_array($form['#field_info'][$row['field_name']]['widget']['default_value'])) {
+          foreach ($form_state['values'][$row['field_name']] as $delta => $value) {
+            $form_state['values'][$row['field_name']][$delta] = $form['#field_info'][$row['field_name']]['widget']['default_value'][0];
+          }
+        }
       }
     }
 
@@ -827,10 +841,17 @@
           if (variable_get('c_fields_reset_default_' . $form['type']['#value'], 1) &&
             !in_array('node_form_build_preview', $form_state['submit_handlers']) &&
             is_array($form['#field_info'][$field_in_group]['widget']['default_value'])) {
-            foreach ($form['#field_info'][$field_in_group]['widget']['default_value'] as $delta => $value) {
-              $form_state['values'][$field_in_group][$delta]['value'] = $value['value'];
+            foreach ($form_state['values'][$field_in_group] as $delta => $value) {
+              $form_state['values'][$field_in_group][$delta] = $form['#field_info'][$field_in_group]['widget']['default_value'][0];
             }
           }
+          elseif (variable_get('c_fields_reset_default_preview_' . $form['type']['#value'], 1) &&
+            in_array('node_form_build_preview', $form_state['submit_handlers']) &&
+            is_array($form['#field_info'][$field_in_group]['widget']['default_value'])) {
+            foreach ($form_state['values'][$field_in_group] as $delta => $value) {
+              $form_state['values'][$field_in_group][$delta] = $form['#field_info'][$field_in_group]['widget']['default_value'][0];
+            }
+          }
         }
       }
     }
@@ -1017,6 +1038,7 @@
     db_query("UPDATE {variable} SET name = 'c_fields_animation_%s' WHERE name ='c_fields_animation_%s'", $info->type, $info->old_type);
     db_query("UPDATE {variable} SET name = 'c_fields_anim_speed_%s' WHERE name ='c_fields_anim_speed_%s'", $info->type, $info->old_type);
     db_query("UPDATE {variable} SET name = 'c_fields_reset_default_%s' WHERE name ='c_fields_reset_default_%s'", $info->type, $info->old_type);
+    db_query("UPDATE {variable} SET name = 'c_fields_reset_default_preview_%s' WHERE name ='c_fields_reset_default_preview_%s'", $info->type, $info->old_type);
     db_query("UPDATE {variable} SET name = 'c_fields_show_all_%s' WHERE name ='c_fields_show_all_%s'", $info->type, $info->old_type);
     db_query("UPDATE {variable} SET name = 'c_fields_view_%s' WHERE name ='c_fields_view_%s'", $info->type, $info->old_type);
     db_query("UPDATE {variable} SET name = 'c_fields_edit_%s' WHERE name ='c_fields_edit_%s'", $info->type, $info->old_type);
@@ -1035,6 +1057,7 @@
   variable_del('c_fields_animation_' . $type);
   variable_del('c_fields_anim_speed_' . $type);
   variable_del('c_fields_reset_default_' . $type);
+  variable_del('c_fields_reset_default_preview_' . $type);
   variable_del('c_fields_show_all_' . $type);
   variable_del('c_fields_view_' . $type);
   variable_del('c_fields_edit_' . $type);
