diff --git a/visidata/mainloop.py b/visidata/mainloop.py
index <HASH>..<HASH> 100644
--- a/visidata/mainloop.py
+++ b/visidata/mainloop.py
@@ -340,5 +340,7 @@ def run(vd, *sheetlist):
         if scr:
             curses.endwin()
 
+    vd.cancelThread(*[t for t in vd.unfinishedThreads if not t.name.startswith('save_')])
+
     if ret:
         print(ret)
[main] cancel unfinished non-saver threads at end of vd.run() #<I>