You're right in that you're describing the problem stated earlier. I wish we know why these 2 bytes exist and what's putting them in.
For the ZipReader, I guess the answer is putting in checking for the header and skipping those two bytes. Unfortunately, I haven't had time to look at the problem more closely.