diff -Nurd most-5.1.0.orig/src/file.c most-5.1.0/src/file.c
--- most-5.1.0.orig/src/file.c	2019-02-17 23:05:44.000000000 -0500
+++ most-5.1.0/src/file.c	2021-12-23 09:29:26.000000000 -0500
@@ -77,7 +77,7 @@
 static int open_compressed_file(char *file, int mode, int *size)
 {
    int fd;
-   char buf[4], cmdbuf[2*MAX_PATHLEN];
+   char buf[6], cmdbuf[2*MAX_PATHLEN];
    struct stat st;
 
 # ifdef O_BINARY
@@ -97,7 +97,7 @@
 
    if (fd < 0) return fd;
 
-   if (4 == read(fd, buf, 4))
+   if (6 == read(fd, buf, 6))
      {
 	char *cmd = NULL;
 
@@ -113,6 +113,20 @@
 	  {
 	     cmd = MOST_BZIP2_POPEN_FORMAT;
 	  }
+	else if ((buf[0] == (char) 0xff)
+	    && (buf[1] == 'L') && (buf[2] == 'Z')
+	    && (buf[3] == 'M') && (buf[4] == 'A')
+	    && (buf[5] == (char) 0x00))
+	  {
+	    cmd = MOST_LZMA_POPEN_FORMAT;
+	  }
+	else if ((buf[0] == (char) 0xfd)
+	    && (buf[1] == '7') && (buf[2] == 'z')
+	    && (buf[3] == 'X') && (buf[4] == 'Z')
+	    && (buf[5] == (char) 0x00))
+	  {
+	    cmd = MOST_XZ_POPEN_FORMAT;
+	  }
 
 	if (cmd != NULL)
 	  {
diff -Nurd most-5.1.0.orig/src/file.h most-5.1.0/src/file.h
--- most-5.1.0.orig/src/file.h	2019-02-17 23:05:44.000000000 -0500
+++ most-5.1.0/src/file.h	2021-12-23 09:28:15.000000000 -0500
@@ -22,6 +22,8 @@
 #define MOST_MAX_FILES 4096
 #define MOST_GUNZIP_POPEN_FORMAT "gzip -dc \"%s\""
 #define MOST_BZIP2_POPEN_FORMAT "bzip2 -dc \"%s\""
+#define MOST_LZMA_POPEN_FORMAT "lzma -dc \"%s\""
+#define MOST_XZ_POPEN_FORMAT "xz -dc \"%s\""
 
 extern void most_reread_file (void);
 extern void most_read_to_line (int);