check all calls to FClose() or similar
function.
It's not the first time someone
reports such thing.
One of the most funny situation was
when I received from user
DBF file with printer output inside.
It was caused by double call
to FClose( nStaticVar ).
The first call closed correct file.
Then SET PRINTER TO <cFile>
was executed and then file handle
reused. The second call to
FClose() closed this handle and it
was reused again by dbUseArea()
but still SET PRINTER TO was active
with the same handle number
as the one used by DbUseArea(). What
happened you can imagine.
The report directed to printer ended
in DBF file corrupting it.
The buggy code was used for many
years and suddenly some
other modifications which changed the
order in which OS allocated
handles for running application
exploited it.
Changing Harbour version does not
help you. Of course it possible
that you mask the problem for some
time but it will return and the
results can be much worse .