Well, the locking is the only "sure" way to control file access and you don't have to deal with renaming stuff back when you crash. The problem you have is this: When AppInstance1 checks for the availability of File1.tif, it's there. The next step, is for it to rename File1.tif to File1.locked. But, What if AppInstance2 found that File1.tif was available at (nearly) the same time, say, between AppInstance1 finding the file and renaming it? In this case, BOTH instances will find the file, but only one will succeed in renaming it. How is this case handled? It's too much of a pain to write your own file locking scheme when Windows has locking built in. It also has the advantage of being "thread safe", where your custom scheme does not. RageInTheMachine9532