--- date_repeat_form.inc	2008-11-09 13:01:51.000000000 +0100
+++ date_repeat_form.inc.new	2008-11-25 00:24:16.000000000 +0100
@@ -235,6 +235,9 @@
       if (is_array($value['datetime'])) {
         $exdate_element['#value'] = $form_values['EXDATE'][$delta]['datetime'];
         $form_values['EXDATE'][$delta]['datetime'] = $function($exdate_element);
+      } 
+      if (is_array($value['datetime']) && !array_key_exists('date', $value['datetime']) && isset($value['datetime']['year'])) {
+        $form_values['EXDATE'][$delta]['datetime'] = date_convert($value['datetime'], DATE_ARRAY, DATE_DATETIME);
       }
     }
   }
@@ -249,7 +252,12 @@
   $form_values = $form_state['values'];
   $field_name = $element['#parents'][0];
   $item = $form_values[$field_name]['rrule'];
-  $item = date_repeat_merge($item, $element);
+  if($element['#tree']) {
+    foreach($element['#parents'] as $v) {
+        $form_values = $form_values[$v];
+    }
+  }
+  $item = date_repeat_merge($form_values, $item);
   $rrule = date_api_ical_build_rrule($item);
   form_set_value($element, $rrule, $form_state);
 }
