When working with the locking function and getting the name of the lock right from within VFP, I noticed the translation too.
In the print queue, the name is "c:\temp\folder\name.fxp". The name to use for the lock is at that moment is "c__temp_folder_name.fxp"
Taking the transformation of : and \ to _ in account, the locking works.
What remains is the question, is that the only tranformation? What other characters are transformed?
If amyuni CDINTF.DLL is doing the translation from an unusable printjob name to a usable one (For it is used as a registry entry value, some symbols can't be used), can you please inform us what other transformations are done?