Okay let's restart... maybe I misunderstood that Richard was able to reproduce this.
I have figured out a simple script that with 3.8.11.1 windows (using binary download sqlite3.exe) causes the problem. running just 'sqlite3.exe' --- script --- .open test.db pragma journal_mode=wal; .open test.db create table test(id int); .quit this always leaves -shm and -wal files laying around. it's when there's multiple opens. tested on linux and test.db-shm and -wal files stay around until the program closes. But they should normally be gone at the end of the create table? [root at tower2 ~]# sqlite3 SQLite version 3.8.11.1 2015-07-29 20:00:57 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open /tmp/test.db sqlite> pragma journal_mode=WAL; wal sqlite> .open /tmp/test.db sqlite> create table test(id int); sqlite> (ctrl-z) [4]+ Stopped sqlite3 [root at tower2 ~]# ls /tmp test.db test.db-shm test.db-wal they do get deleted after the .quit on linux.