Criar e transmitir arquivo zip de arquivo de imagem para download C #

Eu estou usando a amada biblioteca de arquivamento DotNetZip no MVC3 para gerar um arquivo Zip em tempo real que contém imagens .png de binários armazenados em um banco de dados. Em seguida, envio o arquivo Zip gerado para o download do usuário. (Eu valido os dados da imagem antes de salvar no banco de dados, assim você pode assumir que todos os dados da imagem são válidos).

public ActionResult PictureExport()
      {
           IEnumerable<UserPicture> userPictures = db.UserPicture.ToList();
           //"db" is a DataContext and UserPicture is the model used for uploaded pictures.
           DateTime today = DateTime.Now;
           string fileName = "attachment;filename=AllUploadedPicturesAsOf:" + today.ToString() + ".zip";
           this.Response.Clear();
           this.Response.ContentType = "application/zip";
           this.Response.AddHeader("Content-Disposition", fileName);

           using (ZipFile zipFile = new ZipFile())
             {
               using (MemoryStream stream = new MemoryStream())
                {
                 foreach (UserPicture userPicture in userPictures)
                  {
                     stream.Seek(0, SeekOrigin.Begin);
                     string pictureName = userPicture.Name+ ".png";
                     using (MemoryStream tempstream = new MemoryStream())
                     {
                        Image userImage = //method that returns Drawing.Image from byte[];
                        userImage.Save(tempstream, ImageFormat.Png);
                        tempstream.Seek(0, SeekOrigin.Begin);
                        stream.Seek(0, SeekOrigin.Begin);
                        tempstream.WriteTo(stream);
                     }

                     zipFile.AddEntry(pictureName, stream);
                 }

                zipFile.Save(Response.OutputStream);
              }

           }

        this.Response.End();
        return RedirectToAction("Home");
      }

Este código funcionará para o upload e exportação de uma (1) imagem. No entanto, após carregar mais de uma imagem no banco de dados e, em seguida, tentar exportá-las todas, o arquivo Zip gerado conterá apenas os dados da imagem enviada mais recente. Todos os outros NAMES da imagem aparecerão no arquivo zip, mas o tamanho do arquivo será 0 e eles são simplesmente arquivos vazios.

Eu estou supondo que meu problema tem a ver com o MemoryStreams (ou que eu estou faltando algo simples), mas tanto quanto eu posso dizer, percorrendo o código, as imagens estão sendo retiradas do banco de dados e estão sendo adicionadas ao zip file com sucesso ...

questionAnswers(1)

yourAnswerToTheQuestion