Download do arquivo ZIP do PHP

Aqui está um código que baixa arquivos de anexo de um servidor imap. Quase todos os tipos de arquivo (pdf, doc, xls, etc) estão sendo baixados corretamente, onde, como alguns arquivos zip dão o seguinte erro:

"O arquivo está em formato desconhecido ou danificado"

Código:

//data from imap server
$name = "xyz 123.zip";
$type = "APPLICATION";
$subtype = "ZIP";
$encoding = "BASE64";
$body = imap_base64($data);

header('Content-Description: File Transfer');
header('Content-Type: '. $type .'/'. $subtype);
header('Content-Disposition: attachment; filename='.$name);
header('Content-Transfer-Encoding: '.$encoding);
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
ob_clean();
flush();
echo $body;

Além disso, se eu fizer eco dos dados e convertê-los em um arquivo usando:

http://www.motobit.com/util/base64-decoder-encoder.asp

O arquivo está sendo baixado corretamente. Daí nenhum problema em obter o arquivo do servidor. Onde eu estou errando??

questionAnswers(7)

yourAnswerToTheQuestion