My RAM is not really compatible with my mobo without tweaking (still in progress). This results in significant amounts of memory corruption, which results in files that don't match their hashes and get flagged potentially unsafe. As they should. Whenever I have a stable configuration I restart the download and merge with the old file. Shareaza re-downloads the corrupt data, and since the file has identical name, overwrites the corrupt file. This actually works great. It does not however clear the potentially unsafe flag and set the shared status to correct value. Instead it retains the values of the overwritten corrupted file. Usually RAM either works or you buy new, so this is not a big deal, but it is a minor bug.
Also seeing as file sizes seem to be constantly rising and that brings the chance of failed hash check to even people with correct memory config, it might be worthwhile to have Shareaza automatically check files that fail hash check for corrupt chunks and if found resume downloading automatically. This could later be extended to fixing file corruption caused by disk errors. So store the original hash and add an option to (or automatically) re-download from net if it is different from the calculated one?