diff --git a/includes/FeedsSource.inc b/includes/FeedsSource.inc
index 4117925..65f30f1 100644
--- a/includes/FeedsSource.inc
+++ b/includes/FeedsSource.inc
@@ -405,6 +405,7 @@ class FeedsSource extends FeedsConfigurable {
       $this->imported = time();
       $this->log('import', 'Imported in !s s', array('!s' => $this->imported - $this->state[FEEDS_START]), WATCHDOG_INFO);
       module_invoke_all('feeds_after_import', $this);
+      $this->fetcher_result->deleteFile();
       unset($this->fetcher_result, $this->state);
     }
     $this->save();
diff --git a/plugins/FeedsFetcher.inc b/plugins/FeedsFetcher.inc
index 33457de..fd03cc9 100644
--- a/plugins/FeedsFetcher.inc
+++ b/plugins/FeedsFetcher.inc
@@ -11,6 +11,7 @@
 class FeedsFetcherResult extends FeedsResult {
   protected $raw;
   protected $file_path;
+  protected $fid;
 
   /**
    * Constructor.
@@ -50,9 +51,10 @@ class FeedsFetcherResult extends FeedsResult {
       }
       $this->file_path = FALSE;
       if ($file = file_save_data($this->getRaw(), $destination . '/' . get_class($this) . REQUEST_TIME)) {
-        $file->status = 0;
+        $file->status = FILE_STATUS_PERMANENT;
         file_save($file);
         $this->file_path = $file->uri;
+        $this->fid = $file->fid;
       }
       else {
         throw new Exception(t('Cannot write content to %dest', array('%dest' => $destination)));
@@ -62,6 +64,17 @@ class FeedsFetcherResult extends FeedsResult {
   }
 
   /**
+   * Deletes the file containing the resource provided by the fetcher.
+   */
+  public function deleteFile() {
+    if (isset($this->fid) && $file = file_load($this->fid)) {
+      file_delete($file);
+      unset($this->fid);
+      unset($this->file_path);
+    }
+  }
+
+  /**
    * Sanitize the raw content string. Currently supported sanitizations:
    *
    * - Remove BOM header from UTF-8 files.
