Log.lib corrupting logs

Hi, has anyone had any experiences with the log.lib detecting corrupt logs on log_open and clearing the log file?

Just wondering what could be corrupting the logs.

Here is the code from log.lib that seems to be catching an error and is “scratching” the log file:

 * Look for the last log entry.  We can safely assume that only the first or
 * last entry in the file may be corrupted if power was interrupted during a
 * shift or append respectively.  We have already found the first entry (and
 * corrected it, if necessary).  Note that there _must_ be a 0x7E in the last
 * 256 bytes of the file.  If not, then the whole file is deemed to be corrupt.
fseek(&pfile->f, 0L, SEEK_END );
fstart = ftell(&pfile->f) - 256;
if (fstart < 0)
	fstart = 0;
fseek(&pfile->f, fstart, SEEK_SET);
siz = fread( & pfile->f, buffer, 256 );
if( siz <= _LOG_HEADER_SIZE ) {
	printf( "ERROR: _log_fs2_validate() file disappeared!");
	goto _scratch_file;

I put a breakpoint on the error and it appears fread is returning 0 bytes read. Thus siz = 0 and so it scratches the file.

Any clues out there?