I believe the semantics on Windows differ slightly from *nix. (On Unix locks are advisory, on Windows they are mandatory.) Also the semantics on *nix vary based on the filesystem. (NFS is different than remote Windows is different from local filesystem.)
Which underscores the importance of having a unit test.