reading/writing an archive causes data loss; horribly broken

Consider, if you will, the following source. import, std.file; void main() { auto arch = new ZipArchive; auto test = new ArchiveMember; = "foob"; test.expandedData = [cast(ubyte) 2, 3, 4, 5]; arch.addMember(test); auto data =; write("", data); auto arch2 = new ZipArchive(data); // arch2.expand(["foob"]); // this fixes it auto data2 =; write("", data2); // contains a single file, "foob", zero bytes. It's horribly empty in there. } It seems when Phobos builds the archive data without decompressing in-between, it doesn't consider the already existing compressed data to be of any particular relevance and just recompresses the (empty) uncompressed data. This bug just cost me two days of work. Glee! --feep