diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index be88c46725a09326150f2022b020c4f3fb5172d7..80c340f51a0b88de61a06d7e0cb8132ac3ac323e 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -2329,6 +2329,12 @@ int pack(const char *srcfile, const char *destfile, fidoaddr_t dest)
 
 	lprintf(LOG_DEBUG,"Packing packet (%s) into bundle (%s) for %s using %s"
 		,srcfile, destfile, smb_faddrtoa(&dest, NULL), archive->name);
+	if(strListFind((str_list_t)supported_archive_formats, archive->name, /* case_sensitive */FALSE) >= 0) {
+		const char* file_list[] = { srcfile, NULL };
+		if(create_archive(destfile, archive->name, /* with_path: */false, (str_list_t)file_list, tmp, sizeof(tmp)) == 1)
+			return 0;
+		lprintf(LOG_ERR, "libarchive error (%s) creating %s", tmp, destfile);
+	}
 	return execute(cmdstr(&scfg, /* user: */NULL, archive->pack, destfile, srcfile, tmp, sizeof(tmp)));
 }