? schedule/views/station_schedule_handler_filter_schedule_items.inc
Index: schedule/station_schedule.edit.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/station/schedule/station_schedule.edit.inc,v
retrieving revision 1.4
diff -u -p -r1.4 station_schedule.edit.inc
--- schedule/station_schedule.edit.inc	17 Sep 2009 23:13:43 -0000	1.4
+++ schedule/station_schedule.edit.inc	14 Sep 2010 02:35:22 -0000
@@ -130,6 +130,11 @@ function station_schedule_item_edit_form
     '#value' => t('Save'),
   );
   if ($schedule_item->iid) {
+    $form['buttons']['duplicate'] = array(
+      '#type' => 'submit',
+      '#value' => t('Save as new'),
+      '#submit' => array('station_schedule_item_edit_duplicate_submit'),
+    );
     $form['buttons']['remove'] = array(
       '#type' => 'submit',
       '#value' => t('Remove'),
@@ -144,6 +149,11 @@ function station_schedule_item_edit_form
   return $form;
 }
 
+function station_schedule_item_edit_duplicate_submit($form, &$form_state) {
+  $form_state['duplicate'] = TRUE;
+  station_schedule_item_edit_form_submit($form, $form_state);
+}
+
 /**
  * Button sumit function: handle the 'Remove' button on the item edit form.
  */
@@ -181,7 +191,7 @@ function station_schedule_item_edit_form
   $schedule = node_load($form_state['values']['schedule_nid']);
 
   $record = array(
-    'iid' => $form_state['values']['iid'],
+    'iid' => $form_state['duplicate'] ? NULL : $form_state['values']['iid'],
     'schedule_nid' => $form_state['values']['schedule_nid'],
     'program_nid' => $program->nid,
     'start' => $form_state['values']['range']['start'],
@@ -189,7 +199,7 @@ function station_schedule_item_edit_form
     'may_archive' => $form_state['values']['may_archive'],
   );
 
-  if ($form_state['values']['iid']) {
+  if ($form_state['values']['iid'] && !$form_state['duplicate']) {
     drupal_write_record('station_schedule_item', $record, array('iid'));
     $old_record = (array) $form_state['values']['old_schedule_item'];
     if ($old_record['program_nid'] != $record['program_nid']) {
