--- daterange.module.orig	2007-09-26 15:18:27.000000000 -0400
+++ daterange.module	2007-09-28 14:51:06.827851663 -0400
@@ -122,6 +122,7 @@ function daterange_views_tables() {
               'handler' => 'views_handler_filter_between_date',
               'value-type' => 'array',
               'cacheable' => 'no',
+              'help' => t('Use <i>today</i> for the current date, <i>yesterday</i> for one day before, or <i>today-1M</i> for a month before the current date, and so on.  Valid arguments include <i>M</i> for month and <i>Y</i> for year.'),
             ),
           )
         );
@@ -174,7 +175,8 @@ function views_handler_filter_between_da
   if (!is_array($values)) {
     $values = array('date1' => '', 'date2' => '');
   }
-  if ($form_element['date1']['#name'] != 'edit[date1]') {
+  //if ($form_element['date1']['#name'] != 'edit[date1]') {
+  if ($form_element['date1']['#name'] != 'filter0[date1]') {
     $form_element['date1']['#default_value'] = $values['date1'];
     $form_element['date2']['#default_value'] = $values['date2'];
   }
@@ -186,14 +188,26 @@ function views_handler_filter_between_da
 }
 
 function views_handler_filter_between_date_after_build($form_element) {
-  if ($form_element['date1']['#name'] == 'date1') {
+  if ($form_element['date1']['#name'] == 'filter0[date1]') {
     // get rid of 'edit' in name
-    $form_element['date1']['#name'] = $form_element['#name'] .'[date1]';
-    $form_element['date2']['#name'] = $form_element['#name'] .'[date2]';
+    //$form_element['date1']['#name'] = $form_element['#name'] .'[date1]';
+    //$form_element['date2']['#name'] = $form_element['#name'] .'[date2]';
 
-    // set the select elements to the previously chosen date
-    $form_element['date1']['#value'] = $form_element['#default_value']['date1'];
-    $form_element['date2']['#value'] = $form_element['#default_value']['date2'];
+    if(is_array($form_element['#default_value'])) {
+      if (array_key_exists('date1', $form_element['#default_value'])) {
+        // set the select elements to the previously chosen date
+        $form_element['date1']['#value'] = $form_element['#default_value']['date1'];
+        $form_element['date2']['#value'] = $form_element['#default_value']['date2'];
+      }
+      else {
+        $values = unserialize($form_element['#default_value'][0]);
+        if (!is_array($values)) {
+          $values = array('date1' => '', 'date2' => '');
+        }
+        $form_element['date1']['#value'] = $values['date1'];
+        $form_element['date2']['#value'] = $values['date2'];
+      }
+    }
   }
   else {
     $values = array(
@@ -284,6 +298,7 @@ function _daterange_form_fill_missing_op
       $form["filter$index"]['#default_value']['date2'] = 'today';
     }
   }
+  $form["filter$index"]['#tree'] = TRUE;
 }
 
 function views_handler_filter_between_date($op, $filter, &$filterinfo, &$query) {
@@ -351,3 +366,8 @@ function _views_handler_filter_between_d
   }
   $query->add_where($where);
 }
+
+function daterange_mvc_debug($string, $title = 'debug') {
+    return;
+    print "<h3>$title</h3>\n<xmp>\n".print_r($string,true)."</xmp>\n";
+}
