diff --git a/gracedb/superevents/models.py b/gracedb/superevents/models.py
index 423e2bfc980e7c1ce7d2d6032259edc17423ab6b..37cbdc70eed17a922d07e03e9d762c2bffa7f12d 100644
--- a/gracedb/superevents/models.py
+++ b/gracedb/superevents/models.py
@@ -1,6 +1,7 @@
 from django.db import models, IntegrityError
 from django.urls import reverse
 from django.contrib.auth import get_user_model
+from django.contrib.contenttypes.models import ContentType
 from django.conf import settings
 from django.core.exceptions import ValidationError
 from django.utils.translation import ugettext_lazy as _
@@ -12,14 +13,14 @@ from core.time_utils import posixToGpsTime, gpsToUtc
 from core.utils import int_to_letters, letters_to_int
 from events.models import Event, SignoffBase, VOEventBase, EMObservationBase, \
     EMFootprintBase
-from core.utils import int_to_letters
+from guardian.models import GroupObjectPermission
 
 import datetime
 from cStringIO import StringIO
 from hashlib import sha1
 import os
 import re
-
+import shutil
 import logging
 
 # Other setup
@@ -147,6 +148,21 @@ class Superevent(CleanSaveModel, ModelToDictMixin, AutoIncrementModel):
             self.preferred_event not in self.events.all()):
             self.events.add(self.preferred_event)
 
+    def delete(self, purge=False, *args, **kwargs):
+        if purge:
+            # Delete data directory
+            if os.path.isdir(self.datadir):
+                shutil.rmtree(self.datadir)
+
+            # Delete GroupObjectPermissions
+            ctype = ContentType.objects.get_for_model(self.__class__)
+            gops = GroupObjectPermission.objects.filter(object_pk=self.pk,
+                content_type=ctype)
+            gops.delete()
+
+        # Call base class delete
+        super(Superevent, self).delete(*args, **kwargs)
+
     def confirm_as_gw(self):
         """
         Sets is_gw to True, calculates the gw_date_number in the database, and