diff -rup views_calc/views_calc.module views_calc.new/views_calc.module
--- views_calc/views_calc.module	2009-04-03 06:55:36.000000000 -0700
+++ views_calc.new/views_calc.module	2010-03-03 10:38:53.000000000 -0800
@@ -120,6 +120,14 @@ function views_calc_menu() {
     'page arguments' => array('views_calc_settings_form'),
     'access arguments' => array('administer views calc'),
     );
+  $items['admin/settings/views_calc/delete'] = array(
+    'title' => 'Delete field',
+    'type' => MENU_CALLBACK,
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_calc_field_delete'),
+    'access arguments' => array('administer views calc'),
+  );
+
   return $items;
 }
 
@@ -182,6 +190,13 @@ function views_calc_field_form_item($i, 
   if (empty($field)) {
     $field = array('cid' => 0, 'label' => '', 'tablelist' => '', 'calc' => '', 'format' => '', 'custom' => '');
   }
+  else {
+    $delete = array( // add link for 'delete'
+	'#value' => l(t('delete field'), 'admin/settings/views_calc/delete/'. $field['cid'],
+	  array('attributes' => array('title' => 'Delete this calculated field'))),
+	'#weight' => 19,
+    );
+  }
   $form['group'][$i] = array(
     '#type' => 'fieldset',
     '#tree' => TRUE,
@@ -223,6 +238,9 @@ function views_calc_field_form_item($i, 
     '#default_value' => $field['custom'],
     '#description' => t('The function to call for a custom format.'),
     );
+  if (!empty($delete)) {
+    $form['group'][$i]['delete'] = $delete;
+  }
   return $form;
 }
 
@@ -354,8 +372,12 @@ function _views_calc_substitutions($base
 /**
  *  Views calc fields result object
  */
-function _views_calc_fields() {
-  return db_query("SELECT * FROM {views_calc_fields}");
+function _views_calc_fields($cid = null) {
+  $query = "SELECT * FROM {views_calc_fields}";
+  if (!is_null($cid)) {
+    $query .= " WHERE cid = $cid";
+  }
+  return db_query($query);
 }
 
 /**
@@ -365,4 +387,26 @@ function _views_calc_replacements() {
   $operators     = array_filter(_views_calc_operators(), 'trim');
   $numbers       = range(0, 9);
   return array_merge($operators, $numbers);
+}
+
+/**
+ * Menu callback; confirm deletion of fields.
+ */
+function views_calc_field_delete(&$form_state, $cid = 0) {
+  $field = db_fetch_array(_views_calc_fields($cid));
+  $form = array();
+  $form['label'] = array('#type' => 'hidden', '#value' => $field['label']);
+  $form['cid'] = array('#type' => 'hidden', '#value' => $field['cid']);
+
+  return confirm_form($form, t('Are you sure you want to delete the field %name?', array('%name' => $field['label'])), 'admin/settings/views_calc', NULL, t('Delete'), t('Cancel'));
+}
+
+/**
+ * Deletion of field.
+ */
+function views_calc_field_delete_submit($form, &$form_state) {
+  db_query('DELETE FROM {views_calc_fields} WHERE cid = %d', $form_state['values']['cid']);
+  drupal_set_message(t('The field %name has been removed.', array('%name' => $form_state['values']['label'])));
+  $form_state['redirect'] = 'admin/settings/views_calc';
+  return;
 }
\ No newline at end of file
