MLdonkey uses available protocol features to check that files are correctly downloaded; But you may suspect a bug, or an external problem (memory or disk problem,...) to have corrupted some files.
How to check your downloaded files ?
Run ed2k_hash on the files, and verify that the computed hash match the one that was in the link used to start the download. %%% If you haven't saved that link, and cannot find it anymore, you can use the old_files list of MLdonkey (if you use grep, don't forget to use the -i switch, as ed2k_hash uses lowercase, while the old_list contains uppercase hashes).
If the hash matches, then the download went ok, it's the original link (and the file it identifies) that was broken. %%% If it doesn't match, go to next step.
I've found a corrupted file, what to do next ?
First, check that your system (particularly hardware and filesystems) is working correctly, to avoid repeating the problem. If you can't find anything wrong with your system, think about filing a bug report.
Then copy (or boldly move) the corrupted file back in the MLdonkey temp directory, and rename it after the correct hash, all uppercase (like explained in recover_temp). Once done, run recover_temp. (you can also restart the download instead; It may be necessary to force_download it.)
Correct chunks should be revalidated, then the other chunks will be redownloaded, and corrected.