repair table returns cryptic message

I have an MyIsam table (> 1.5GB big) that crushes quite often. Repair table or myisamchk -r returns messages similar to the following:

Key 1 - Found wrong stored record at 973620836
Found link that points at 3546642079552990793 (outside data file) at 973620852
Found block with too small length at 973620868; Skipped

what does that mean?

some times i get the error message

Wrong bytesec: 32- 32- 32 at 662630684; Skipped

what does that mean?

server version: 5.0.22-Debian_0ubuntu6.06.2-log
2 dual core amd opteron processors @ 2Ghz
8GB Ram
supports large files

First I should note I hope you do not run myisamchk while server is running as it can crash it even more. REPAIR TABLE should be used in this case.

Upgrade to last 5.0 version as were were some MyISAM corruption bugs fixed.

Now the error message says there is a pointer inside the file which points to too large offset (more than file length) and there is also dynamic record which length is too small to be correct so it is skipped.

Last one basically means wrong (unexpected) byte sequence which causes row to be skipped.

Hey thanks for the explanation.
I hope upgrading my server will take care of some of these daily table corruptions am experiencing!