diff --git a/hexlib/db.py b/hexlib/db.py
index 583778a..79470ff 100644
--- a/hexlib/db.py
+++ b/hexlib/db.py
@@ -283,6 +283,13 @@ class PersistentState:
     def __getitem__(self, table):
         return self._table_factory(self, table)
 
+    def __delitem__(self, key):
+        with sqlite3.connect(self.dbfile, **self.dbargs) as conn:
+            try:
+                conn.execute(f"DROP TABLE {key}")
+            except:
+                pass
+
 
 def pg_fetch_cursor_all(cur, name, batch_size=1000):
     while True:
diff --git a/setup.py b/setup.py
index 9096835..e53efe1 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup
 
 setup(
     name="hexlib",
-    version="1.82",
+    version="1.83",
     description="Misc utility methods",
     author="simon987",
     author_email="me@simon987.net",
diff --git a/test/test_PersistentState.py b/test/test_PersistentState.py
index a65e9f6..68a5422 100644
--- a/test/test_PersistentState.py
+++ b/test/test_PersistentState.py
@@ -131,3 +131,13 @@ class TestPersistentState(TestCase):
         s["a"][0] = {"x": b'abc'}
 
         self.assertEqual(list(s["a"])[0]["x"], b'abc')
+
+    def test_drop_table(self):
+        s = PersistentState()
+
+        s["a"][0] = {"x": 1}
+        s["a"][1] = {"x": 2}
+        self.assertEqual(len(list(s["a"])), 2)
+
+        del s["a"]
+        self.assertEqual(len(list(s["a"])), 0)