I won't try to weasel -- well, if you see it happening, then it's definitely happening.
However, I've asked someone who is a real expert in Java / Android security to take a look at my code, and he did not find anything wrong.
So I'm not sure what to think of it -- a bug in my code, files getting corrupted during transfer, or something else?