+apt (0.8.4) UNRELEASED; urgency=low
+
+  * ftparchive/writer.cc:
+    - write out {Files,Checksum-Sha1,Checksum-Sha256} only if
+      available LP: #633967. Thanks to Colin Watson
+
+ -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 09 Sep 2010 15:30:19 +0200
+
 apt (0.8.3) unstable; urgency=low
 
   [ Manpages translations ]
 
    // Add the dsc to the files hash list
    string const strippedName = flNotDir(FileName);
    std::ostringstream ostreamFiles;
-   ostreamFiles << "\n " << string(MD5.Result()) << " " << St.st_size << " "
-               << strippedName << "\n " << Tags.FindS("Files");
+   if (Tags.Exists("Files"))
+      ostreamFiles << "\n " << string(MD5.Result()) << " " << St.st_size << " "
+                  << strippedName << "\n " << Tags.FindS("Files");
    string const Files = ostreamFiles.str();
 
    std::ostringstream ostreamSha1;
-   ostreamSha1 << "\n " << string(SHA1.Result()) << " " << St.st_size << " "
-               << strippedName << "\n " << Tags.FindS("Checksums-Sha1");
+   if (Tags.Exists("Checksums-Sha1"))
+      ostreamSha1 << "\n " << string(SHA1.Result()) << " " << St.st_size << " "
+                  << strippedName << "\n " << Tags.FindS("Checksums-Sha1");
    string const ChecksumsSha1 = ostreamSha1.str();
 
    std::ostringstream ostreamSha256;
-   ostreamSha256 << "\n " << string(SHA256.Result()) << " " << St.st_size << " "
-               << strippedName << "\n " << Tags.FindS("Checksums-Sha256");
+   if (Tags.Exists("Checksums-Sha256"))
+      ostreamSha256 << "\n " << string(SHA256.Result()) << " " << St.st_size << " "
+                  << strippedName << "\n " << Tags.FindS("Checksums-Sha256");
    string const ChecksumsSha256 = ostreamSha256.str();
 
    // Strip the DirStrip prefix from the FileName and add the PathPrefix