diff --git a/beat/web/experiments/admin.py b/beat/web/experiments/admin.py
index e64e65849ff17e206a974c4a880654309ff80832..ba46d70cd028712961a87ba4cc9d05c567aaef74 100755
--- a/beat/web/experiments/admin.py
+++ b/beat/web/experiments/admin.py
@@ -520,6 +520,39 @@ admin.site.register(ResultModel, Result)
 #----------------------------------------------------------
 
 
+def delete_file_on_fs(modeladmin, request, queryset):
+    '''
+    Delete the files contained in the cache
+    '''
+
+    for obj in queryset:
+        obj.delete_files()
+
+
+delete_file_on_fs.short_description = 'Delete files from the cache'
+
+
+def cascading_delete_file_on_fs(modeladmin, request, queryset):
+    '''
+    Delete the files contained in the cache
+    '''
+
+    for obj in queryset:
+        for block in obj.blocks.all():
+            experiment = block.experiment
+            for exp_block in experiment.blocks.all():
+                for result in exp_block.results.all():
+                    if result.cache is not None:
+                        result.cache.delete_files()
+                for input_ in exp_block.inputs.all():
+                    if input_.cache is not None:
+                        input_.cache.delete_files()
+
+
+cascading_delete_file_on_fs.short_description = 'Delete files from the ' \
+                                                'selected and related caches'
+
+
 class CachedFile(admin.ModelAdmin):
 
     search_fields = [
@@ -543,10 +576,18 @@ class CachedFile(admin.ModelAdmin):
     # to avoid very slow loading of cached files
     raw_id_fields = ('blocks',)
 
+    actions = [delete_file_on_fs, cascading_delete_file_on_fs]
+
     def get_queryset(self, request):
         qs = super(CachedFile, self).get_queryset(request)
         return qs.annotate(date=Max('blocks__start_date'))
 
+    def get_actions(self, request):
+        actions = super(CachedFile, self).get_actions(request)
+        if 'delete_selected' in actions:
+            del actions['delete_selected']
+        return actions
+
     def date(self, obj):
         return obj.date
 
diff --git a/beat/web/experiments/models/cached_file.py b/beat/web/experiments/models/cached_file.py
index 856407bfdab06336fe27900a3e8448f3816e51fe..13ad9a240ac6e54d1aef8e9533f123d5552e955a 100755
--- a/beat/web/experiments/models/cached_file.py
+++ b/beat/web/experiments/models/cached_file.py
@@ -177,3 +177,14 @@ class CachedFile(models.Model):
                 return False
 
         return True
+
+
+    def delete_files(self, cache=settings.CACHE_ROOT):
+        '''
+        Delete the files contained in this cache
+        '''
+        files = self.files()
+        for file in files:
+            os.remove(file)
+        self.status = CachedFile.NOT_CACHED
+        self.save()