diff -Naur flexifield-alpha5/flexifield.module flexifield/flexifield.module
--- flexifield-alpha5/flexifield.module	2009-07-08 01:19:16.000000000 +0200
+++ flexifield/flexifield.module	2010-08-04 17:17:39.000000000 +0200
@@ -630,7 +630,23 @@
       }
     }
   }
-
+	
+	//Code added in from issue http://drupal.org/node/291864 #9
+	// Checkbox element for removing this item
+	$flexiName = $aElement['#name'];
+  preg_match('/^(.*)\[(.*)\]$/', $flexiName, $matches);
+  $flexiId = str_replace('_', '-', $matches[1]);
+  $flexiDelta = $matches[2];
+  $aElement['_remove'] = array(
+    '#type' => 'checkbox',
+    '#default_value' => $aElement['#value']['_remove'],
+    '#title' => '<span>Remove item</span>',
+    '#weight' => '-50',
+  );
+  $aElement['_remove']['#attributes']['class'] = 'flexi-remove';
+	//end hacked code.
+	
+	
   return $aElement;
 }
 
@@ -675,4 +691,56 @@
       }
     }
   }
+}
+
+
+//More hacked code from http://drupal.org/node/291864 #9
+
+/**
+* Implementation of hook_form_alter().
+*/
+function flexifield_form_alter(&$form, &$form_state, $form_id) {
+  // Traverse form array to see if it contains a flexifield.
+  $contains_flexi = FALSE;
+  if(is_array($form) && is_array($form['#field_info'])) {
+    foreach($form['#field_info'] as $fields) {
+      if(is_array($fields) && $fields['type'] == 'flexifield' && is_array($form[$fields['field_name']])) {
+        $contains_flexi = TRUE;
+        break;
+      }
+    }
+  }
+  if ($contains_flexi) {
+    // Add javascript/css to restyle 'Remove item' checkbox.
+    $form['#after_build'][] = '_flexifield_theme_node_form';
+    // Append submit function to remove selected items.
+    $form['#submit'][] = '_flexifield_node_form_submit';
+  }
+}
+
+/**
+* Deletes the form entry for flexifields whose _remove value is set.
+*/
+function _flexifield_node_form_submit(&$form, &$form_state) {
+  if(is_array($form) && is_array($form['#field_info'])) {
+    foreach($form['#field_info'] as $fields) {
+      if(is_array($fields) && $fields['type'] == 'flexifield' && is_array($form[$fields['field_name']])) {
+        $name = $form[$fields['field_name']]['#name'];
+        foreach($form['#post'][$name] as $key => &$flexi) {
+          if (isset($flexi['_remove']) && $flexi['_remove']) {
+            unset($form_state['values'][$fields['field_name']][$key]);
+          }
+        }
+      }
+    }
+  }
+}
+
+/**
+* Add our item-removal-UI script to the form.
+*/
+function _flexifield_theme_node_form($element) {
+  $path = drupal_get_path('module', 'flexifield');
+  drupal_add_js($path . '/js/flexifield_remove.js');
+  return($element);
 }
\ Nincs újsor a fájl végén
diff -Naur flexifield-alpha5/js/flexifield_remove.js flexifield/js/flexifield_remove.js
--- flexifield-alpha5/js/flexifield_remove.js	1970-01-01 01:00:00.000000000 +0100
+++ flexifield/js/flexifield_remove.js	2010-07-01 05:43:30.000000000 +0200
@@ -0,0 +1,77 @@
+var flexiTypes = [];
+Drupal.behaviors.flexiremove = function (context) {
+    $('.flexi-remove', context).each(function(){
+        var wrapperName = $(this).parents("div").attr("id");
+        var len = wrapperName.length - "--remove-wrapper".length;
+        var id = wrapperName.substr(0,len);
+        var wrapper = $("#"+wrapperName);
+        var spanText = $(this).next().html();
+        wrapper.append('<a href="javascript:void(0);" class="flexi-remove-text">'+spanText+'</a>');
+        initializeRemove(id);
+        wrapper.bind('click', function(){toggleRemove(id);}).css({'float':'right'});
+        $(this).parent().hide();
+    });
+};
+function initializeRemove(id){
+    var checkbox = $("#"+id+"--remove");
+    var isChecked = checkbox.is(':checked');
+    var oLabelWrapperDiv = $("#"+id+"-wrapper .flexi-remove-text");
+    if (isChecked) {
+        removeOn(id);
+        oLabelWrapperDiv.text('Add new item');
+    }else{
+        removeOff(id);
+        oLabelWrapperDiv.text("Remove item");
+    }
+}
+function toggleRemove(id){
+    var checkbox = $("#"+id+"--remove");
+    var isChecked = checkbox.is(':checked');
+    var oLabelWrapperDiv = $("#"+id+"-wrapper .flexi-remove-text");
+    if (isChecked) {
+        removeOff(id);
+        checkbox.attr('checked', false);
+        oLabelWrapperDiv.text("Remove item");
+    }else{
+        removeOn(id);
+        checkbox.attr('checked', true);
+        oLabelWrapperDiv.text("Undo");
+    }
+}
+function removeOn(id){
+    var typeValue = $("#"+id+"-type").val();
+    flexiTypes[id] = typeValue;
+    $("#"+id+"-type").find("option:selected").removeAttr("selected");
+    $("#"+id+"-type").find("option[value='']").attr("selected", "selected");
+    var row = $("#"+id+"-wrapper").parent()
+        .prepend("<em style='float:left' class='remove-"+id+"'>Item will be deleted when form is saved</em>")
+        .parent();
+    if (!row.hasClass('drag-previous')) {
+        row.addClass('drag-previous flexi-remove-row');
+    }
+    var cell = $('td:first', row);
+    if ($('span.tabledrag-changed', cell).length == 0) {
+        $(Drupal.theme('tableDragChangedMarker')).addClass("remove-"+id).appendTo(cell);
+    }
+    var aTableName = id.split('-');aTableName.pop();aTableName.shift();
+    var sTableName = aTableName.join('_')+'_values';
+    if (Drupal.tableDrag[sTableName].changed == false){
+        $(Drupal.theme('tableDragChangedWarning')).addClass("remove-"+id).insertAfter($("#"+id+"--remove").parents("table")).hide().fadeIn('slow');
+        Drupal.tableDrag[sTableName].changed = true;
+    }
+    $("#"+id+"-type-wrapper").css("display", "none");
+    $("#"+id+"-value-wrapper").css("display", "none");
+}
+function removeOff(id){
+    if (flexiTypes[id]){
+        $("#"+id+"-type").find("option:selected").removeAttr("selected");
+        $("#"+id+"-type").find("option[value='"+flexiTypes[id]+"']").attr("selected", "selected");
+    }
+    var row = $("#"+id+"-wrapper").parent().parent();
+    if (row.hasClass('flexi-remove-row')){
+        row.removeClass("drag-previous");
+    }
+    $(".remove-"+id).remove();
+    $("#"+id+"-type-wrapper").css("display", "block");
+    $("#"+id+"-value-wrapper").css("display", "block");
+}
