diff --git a/scrapy_deltafetch/middleware.py b/scrapy_deltafetch/middleware.py
index 9f6f1b4..02c4f16 100644
--- a/scrapy_deltafetch/middleware.py
+++ b/scrapy_deltafetch/middleware.py
@@ -37,7 +37,13 @@ def from_crawler(cls, crawler):
         if not s.getbool('DELTAFETCH_ENABLED'):
             raise NotConfigured
         dir = data_path(s.get('DELTAFETCH_DIR', 'deltafetch'))
-        reset = s.getbool('DELTAFETCH_RESET')
+
+        # DELTAFETCH_RESET can be bool (for all spiders) or str of specific spider name
+        try:
+            reset = s.getbool('DELTAFETCH_RESET')
+        except ValueError:
+            reset = s.get('DELTAFETCH_RESET')
+
         o = cls(dir, reset, crawler.stats)
         crawler.signals.connect(o.spider_opened, signal=signals.spider_opened)
         crawler.signals.connect(o.spider_closed, signal=signals.spider_closed)
@@ -49,7 +55,7 @@ def spider_opened(self, spider):
         # TODO may be tricky, as there may be different paths on systems
         dbpath = os.path.join(self.dir, '%s.db' % spider.name)
         reset = self.reset or getattr(spider, 'deltafetch_reset', False)
-        flag = 'n' if reset else 'c'
+        flag = 'n' if reset is True or reset == spider.name else 'c'
         try:
             self.db = dbm.open(dbpath, flag=flag)
         except Exception: