Yunta,
The size limit for a DBT file is 32MB, which means that the file becomes highly unstable once it exceeds that size. There are a number of things that can be done to correct this. The first is to pack the DBF (best done by a copy for .not. deleted() to a new file). An excellent (and free) tool for further compressing the DBT is a small DOS program called DBTCHECK, which you should be able to find on the Web. Neither of these procedures will necessarily fix the corruption, but may. Nevertheless, once the corruption has been cleaned up, these two procedures should save you from further problems of this kind.
PS--If neither of these shrink the DBT enough, you'll need to archive some records to reduce the DBF further, which will also shrink the size of the DBT.