I've been getting bad downloads myself. I may have to check the length of the PHP timeout given. This may have something to do with why you're getting a bad file. Whats the file size? Does it end up being the same as what your browser says?