diff --git a/plugins/FeedsProcessor.inc b/plugins/FeedsProcessor.inc
index 4ad9427..cf62636 100644
--- a/plugins/FeedsProcessor.inc
+++ b/plugins/FeedsProcessor.inc
@@ -241,8 +241,10 @@ abstract class FeedsProcessor extends FeedsPlugin {
    */
   public function process(FeedsSource $source, FeedsParserResult $parser_result) {
     $state = $source->state(FEEDS_PROCESS);
-    if (!isset($state->removeList) && $parser_result->items) {
-      $this->initEntitiesToBeRemoved($source, $state);
+    if (!isset($state->removeList)) {
+      if ($parser_result->items || $this->config['delete_if_empty'] == TRUE) {
+        $this->initEntitiesToBeRemoved($source, $state);
+      }
     }
 
     $skip_new = $this->config['insert_new'] == FEEDS_SKIP_NEW;
@@ -822,6 +824,7 @@ abstract class FeedsProcessor extends FeedsPlugin {
       'input_format' => NULL,
       'skip_hash_check' => FALSE,
       'bundle' => $bundle,
+      'delete_if_empty' => FALSE,
       'language' => LANGUAGE_NONE,
     );
   }
@@ -915,6 +918,13 @@ abstract class FeedsProcessor extends FeedsPlugin {
       '#default_value' => $this->config['update_non_existent'],
     );
 
+    $form['delete_if_empty'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Delete items even if source feed is empty'),
+      '#description' => t('WARNING: if you select this and "Delete non-existent," all your content will be gone if the feed is ever empty.  Use wisely.'),
+      '#default_value' => $this->config['delete_if_empty'],
+    );
+
     return $form;
   }
 
