**** NOTE: This patch is already applied in the Debian Distribution ****

--- rman.c.~1~	Wed Nov 20 13:33:52 1996
+++ rman.c	Fri Oct 24 00:10:56 1997
@@ -3583,6 +3583,43 @@
 			}
 			free(sobuf);
 		}
+	} else {
+#define GZIP "/bin/gzip"
+		char * gz = malloc(strlen(p)+3+1);
+		sprintf(gz, "%s.gz", p);
+		if (stat(gz, &fileinfo)==0) {
+			/* first, figure out how big */
+			char * cmd = malloc(strlen(gz) + strlen(GZIP) + 7 + 1);
+			char buffer[512];
+			unsigned long compr, uncomp;
+			FILE * proc;
+			sprintf(cmd, "%s -l \"%s\"", GZIP, gz);
+			proc = popen(cmd, "r");
+			fgets(buffer, sizeof buffer, proc); /* label line */
+			fgets(buffer, sizeof buffer, proc); /* length line */
+			sscanf(buffer, "%lu %lu", &compr, &uncomp);
+			fclose(proc);
+			/* Boy, don't you wish stat would do that? */
+			sobuf = malloc(uncomp + 1);
+			if (sobuf!=NULL) {
+				/* suck in entire file, as above */
+				sprintf(cmd, "%s -dc \"%s\"", GZIP, gz);
+				proc = popen(cmd, "r");
+				if (proc!=NULL) {
+					if(fread(sobuf, 1, uncomp, proc)) {
+						sobuf[uncomp]='\0';
+						for (q=sobuf; (q=strstr(q," \\}"))!=NULL; q+=3) *q='\n';
+						source_subfile(sobuf);
+						err = 0;
+					}
+					fclose(proc);
+				}
+				free(sobuf);
+			}
+			free(cmd);
+		}
+		free(gz);
+
 	}
 
 	if (err) {
