Couple of months ago we had a thread where VFP seemed to behave like it performed Copy File in a separate thread and executed the next command before the next command was issued. I've ran into another similar thing:
I supplied a default .ini file, but not wanting to have its name fixed, I decided it should be named after the current directory. In the init of a form, I checked if any local .ini file existed, and if it contained one of the necessary values, renamed it to the desired name. Suspended at this point later, and the file showed as renamed. OK. But, in reality, the GetPrivateProfileString() function (not sure I've typed the name exactly, but in the app it's ok) didn't find it under the current name.
The workaround was to do the renaming far earlier, as soon as the app loads - it either got enough time to register the new name, or for some reason didn't like the rename and use of the file within the same method.
OK, this is just a quirk, and I don't really have a problem - just wanted to warn you people in case you run into something similar.