Thanks very much, Matt, for finding and fixing this bug that shows up for Durus ShelfStorage on Windows. I think I'll go ahead and check in your specialize-to-os.name-on-load versions of obtain_lock(), release_lock(), write() and fsync() (and your repairs to utest_file.py). As I understand it, the actual fix to the original problem you found is the additional self.file.flush() at the end of the write() method. I'm just glad we don't need that on non-nt systems. I'm not so hot on the read(), tell() optimization. I understand the intent, and I think I may have tried that myself back when I first write the File class, but it doesn't seem worth it, especially with the extra effort required to keep rename working. Is that okay with you? David