return 0;
    }
 
-   if (MatchSrcOnly == false && Pkg.end() == false) 
+   if (MatchSrcOnly == false && Pkg.end() == false)
    {
       if(VerTag != "" || RelTag != "" || ArchTag != "")
       {
               // or we match against a release
               if(VerTag.empty() == false ||
                     (VF.File().Archive() != 0 && VF.File().Archive() == RelTag) ||
-                    (VF.File().Codename() != 0 && VF.File().Codename() == RelTag)) 
+                    (VF.File().Codename() != 0 && VF.File().Codename() == RelTag))
               {
                  // the Version we have is possibly fuzzy or includes binUploads,
                  // so we use the Version of the SourcePkg (empty if same as package)
         }
       }
 
-      if (Src == "" && ArchTag != "")
+      if (Src.empty() == true && ArchTag.empty() == false)
       {
-        if (VerTag != "")
+        if (VerTag.empty() == false)
            _error->Error(_("Can not find a package '%s' with version '%s'"),
                  Pkg.FullName().c_str(), VerTag.c_str());
-        if (RelTag != "")
+        if (RelTag.empty() == false)
            _error->Error(_("Can not find a package '%s' with release '%s'"),
                  Pkg.FullName().c_str(), RelTag.c_str());
         Src = Name;
    /* Iterate over all of the hits, which includes the resulting
       binary packages in the search */
               pkgSrcRecords::Parser *Parse;
-              while (true) 
+              while (true)
               {
                  SrcRecs.Restart();
-                 while ((Parse = SrcRecs.Find(Src.c_str(), MatchSrcOnly)) != 0) 
+                 while ((Parse = SrcRecs.Find(Src.c_str(), MatchSrcOnly)) != 0)
                  {
                     const std::string Ver = Parse->Version();
-                    bool CorrectRelTag = false;
 
                     // See if we need to look for a specific release tag
-                    if (RelTag != "" && UserRequestedVerTag == "")
+                    if (RelTag.empty() == false && UserRequestedVerTag.empty() == true)
                     {
                        pkgCache::RlsFileIterator const Rls = GetReleaseFileForSourceRecord(Cache, SrcList, Parse);
                        if (Rls.end() == false)
                        {
-                          if ((Rls->Archive != 0 && RelTag == Rls.Archive()) ||
-                                (Rls->Codename != 0 && RelTag == Rls.Codename()))
-                             CorrectRelTag = true;
+                          if ((Rls->Archive != 0 && RelTag != Rls.Archive()) &&
+                                (Rls->Codename != 0 && RelTag != Rls.Codename()))
+                             continue;
                        }
-                    } else
-                       CorrectRelTag = true;
+                    }
 
                     // Ignore all versions which doesn't fit
                     if (VerTag.empty() == false &&
                        continue;
 
                     // Newer version or an exact match? Save the hit
-                    if (CorrectRelTag && (Last == 0 || Cache->VS().CmpVersion(Version,Ver) < 0)) {
+                    if (Last == 0 || Cache->VS().CmpVersion(Version,Ver) < 0) {
                        Last = Parse;
                        Offset = Parse->Offset();
                        Version = Ver;
                        break;
                  }
                  if (UserRequestedVerTag == "" && Version != "" && RelTag != "")
-                    ioprintf(c1out, "Selected version '%s' (%s) for %s\n", 
+                    ioprintf(c1out, "Selected version '%s' (%s) for %s\n",
                           Version.c_str(), RelTag.c_str(), Src.c_str());
 
                  if (Last != 0 || VerTag.empty() == true)
 
 }
 
 insertsource() {
-       local RELEASE="$1"
+       local RELEASES="$1"
        local NAME="$2"
        local ARCH="$3"
        local VERSION="$4"
        local DEPENDENCIES="$5"
-        local BINARY="${6:-$NAME}"
+       local BINARY="${6:-$NAME}"
        local ARCHS=""
-       local SPATH="aptarchive/dists/${RELEASE}/main/source"
-       mkdir -p $SPATH
-       local FILE="${SPATH}/Sources"
-       local DSCFILE="${NAME}_${VERSION}.dsc"
-       local TARFILE="${NAME}_${VERSION}.tar.gz"
-       echo "Package: $NAME
+       for RELEASE in $(printf '%s' "$RELEASES" | tr ',' '\n'); do
+               local SPATH="aptarchive/dists/${RELEASE}/main/source"
+               mkdir -p $SPATH
+               local FILE="${SPATH}/Sources"
+               local DSCFILE="${NAME}_${VERSION}.dsc"
+               local TARFILE="${NAME}_${VERSION}.tar.gz"
+               echo "Package: $NAME
 Binary: $BINARY
 Version: $VERSION
 Maintainer: Joe Sixpack <joe@example.org>
 Architecture: $ARCH" >> $FILE
-       test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> "$FILE"
-       echo "Files:
+               test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> "$FILE"
+               echo "Files:
  $(echo -n "$DSCFILE" | md5sum | cut -d' ' -f 1) $(echo -n "$DSCFILE" | wc -c) "$DSCFILE"
  $(echo -n "$TARFILE" | md5sum | cut -d' ' -f 1) $(echo -n "$TARFILE" | wc -c) "$TARFILE"
 Checksums-Sha256:
  $(echo -n "$DSCFILE" | sha256sum | cut -d' ' -f 1) $(echo -n "$DSCFILE" | wc -c) "$DSCFILE"
  $(echo -n "$TARFILE" | sha256sum | cut -d' ' -f 1) $(echo -n "$TARFILE" | wc -c) "$TARFILE"
 " >> "$FILE"
+       done
 }
 
 insertinstalledpackage() {