diff --git a/sickbeard/tv.py b/sickbeard/tv.py
index dc1cf36e2559c7e59a52a8d5b73756ed5ad01447..fd7afbe0ac78558b547ee2b9c811cd35619de0ad 100644
--- a/sickbeard/tv.py
+++ b/sickbeard/tv.py
@@ -964,6 +964,9 @@ class TVShow(object):  # pylint: disable=too-many-instance-attributes, too-many-
         return self.nextaired
 
     def deleteShow(self, full=False):
+        main_db_con = db.DBConnection()
+
+        episodes_locations = main_db_con.select("SELECT location FROM tv_episodes WHERE showid = ? AND location != ''", [self.indexerid])
 
         sql_l = [["DELETE FROM tv_episodes WHERE showid = ?", [self.indexerid]],
                  ["DELETE FROM tv_shows WHERE indexer_id = ?", [self.indexerid]],
@@ -971,7 +974,6 @@ class TVShow(object):  # pylint: disable=too-many-instance-attributes, too-many-
                  ["DELETE FROM xem_refresh WHERE indexer_id = ?", [self.indexerid]],
                  ["DELETE FROM scene_numbering WHERE indexer_id = ?", [self.indexerid]]]
 
-        main_db_con = db.DBConnection()
         main_db_con.mass_action(sql_l)
 
         action = ('delete', 'trash')[sickbeard.TRASH_REMOVE_SHOW]
@@ -1006,8 +1008,22 @@ class TVShow(object):  # pylint: disable=too-many-instance-attributes, too-many-
                     except Exception as error:
                         logger.log('Unable to change permissions of {0}: {1}'.format(self._location, error), logger.WARNING)
 
-                if {d for d in sickbeard.ROOT_DIRS if self.location in d}:
-                    logger.log('Cannot delete the show files from disk, because this location is the root dir for other shows!')
+                shows_in_folder = main_db_con.select("SELECT location from tv_shows WHERE location LIKE '{showloc}%' AND indexer_id != ?".format(
+                    showloc=self.location), [self.indexerid])
+                num_shows_in_folder = len(shows_in_folder)
+                if num_shows_in_folder:
+                    logger.log('Cannot delete the show folder from disk, because this location is the root dir for {num} other shows!'.format(num=num_shows_in_folder))
+                    logger.log('Deleting individual episodes. There may be some related files or folders left behind afterwards.')
+                    for ep_file in episodes_locations:
+                        for show_file in ek(glob.glob, helpers.replace_extension(glob.escape(ep_file[b'location']), '*')):
+                            logger.log('Attempt to {0} related file {1}'.format(action, show_file))
+                            try:
+                                if sickbeard.TRASH_REMOVE_SHOW:
+                                    send2trash(show_file)
+                                else:
+                                    ek(os.remove, show_file)
+                            except OSError as error:
+                                logger.log('Unable to {0} {1}: {2}'.format(action, show_file, error), logger.WARNING)
                 else:
                     if sickbeard.TRASH_REMOVE_SHOW:
                         send2trash(self.location)