diff --git a/Makefile.in b/Makefile.in
index ded71e0..f9a6bc1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -68,7 +68,7 @@ OBJ =		$(SRC:.c=.o) @LIBOBJS@
 
 ALL =		thttpd
 
-GENHDR =	mime_encodings.h mime_types.h
+GENHDR =	mime_types.h
 
 CLEANFILES =	$(ALL) $(OBJ) $(GENSRC) $(GENHDR)
 
@@ -81,12 +81,6 @@ thttpd: $(OBJ)
 	@rm -f $@
 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(NETLIBS)
 
-mime_encodings.h:	mime_encodings.txt
-	rm -f mime_encodings.h
-	sed < mime_encodings.txt > mime_encodings.h \
-	  -e 's/#.*//' -e 's/[ 	]*$$//' -e '/^$$/d' \
-	  -e 's/[ 	][ 	]*/", 0, "/' -e 's/^/{ "/' -e 's/$$/", 0 },/'
-
 mime_types.h:	mime_types.txt
 	rm -f mime_types.h
 	sed < mime_types.txt > mime_types.h \
@@ -157,14 +151,14 @@ tar:
 	  rm -rf $$name ; \
 	  mkdir $$name ; \
 	  tar cf - `cat FILES` | ( cd $$name ; tar xfBp - ) ; \
-	  chmod 644 $$name/Makefile.in $$name/config.h $$name/mime_encodings.txt $$name/mime_types.txt ; \
+	  chmod 644 $$name/Makefile.in $$name/config.h $$name/mime_types.txt ; \
 	  chmod 755 $$name/cgi-bin $$name/cgi-src $$name/contrib $$name/contrib/redhat-rpm $$name/extras $$name/scripts ; \
 	  tar cf $$name.tar $$name ; \
 	  rm -rf $$name ; \
 	  gzip $$name.tar
 
 thttpd.o:	config.h version.h libhttpd.h fdwatch.h mmc.h timers.h match.h
-libhttpd.o:	config.h version.h libhttpd.h mime_encodings.h mime_types.h \
+libhttpd.o:	config.h version.h libhttpd.h mime_types.h \
 		mmc.h timers.h match.h tdate_parse.h
 fdwatch.o:	fdwatch.h
 mmc.o:		mmc.h libhttpd.h
diff --git a/libhttpd.c b/libhttpd.c
index 3814e6a..bbb4e14 100644
--- a/libhttpd.c
+++ b/libhttpd.c
@@ -2506,10 +2506,6 @@ struct mime_entry {
     char* val;
     size_t val_len;
     };
-static struct mime_entry enc_tab[] = {
-#include "mime_encodings.h"
-    };
-static const int n_enc_tab = sizeof(enc_tab) / sizeof(*enc_tab);
 static struct mime_entry typ_tab[] = {
 #include "mime_types.h"
     };
@@ -2533,15 +2529,9 @@ init_mime( void )
     int i;
 
     /* Sort the tables so we can do binary search. */
-    qsort( enc_tab, n_enc_tab, sizeof(*enc_tab), ext_compare );
     qsort( typ_tab, n_typ_tab, sizeof(*typ_tab), ext_compare );
 
     /* Fill in the lengths. */
-    for ( i = 0; i < n_enc_tab; ++i )
-	{
-	enc_tab[i].ext_len = strlen( enc_tab[i].ext );
-	enc_tab[i].val_len = strlen( enc_tab[i].val );
-	}
     for ( i = 0; i < n_typ_tab; ++i )
 	{
 	typ_tab[i].ext_len = strlen( typ_tab[i].ext );
@@ -2561,14 +2551,12 @@ figure_mime( httpd_conn* hc )
     char* prev_dot;
     char* dot;
     char* ext;
-    int me_indexes[100], n_me_indexes;
-    size_t ext_len, encodings_len;
+    size_t ext_len;
     int i, top, bot, mid;
     int r;
     char* default_type = "text/plain; charset=%s";
 
     /* Peel off encoding extensions until there aren't any more. */
-    n_me_indexes = 0;
     for ( prev_dot = &hc->expnfilename[strlen(hc->expnfilename)]; ; prev_dot = dot )
 	{
 	for ( dot = prev_dot - 1; dot >= hc->expnfilename && *dot != '.'; --dot )
@@ -2583,25 +2571,7 @@ figure_mime( httpd_conn* hc )
 	    }
 	ext = dot + 1;
 	ext_len = prev_dot - ext;
-	/* Search the encodings table.  Linear search is fine here, there
-	** are only a few entries.
-	*/
-	for ( i = 0; i < n_enc_tab; ++i )
-	    {
-	    if ( ext_len == enc_tab[i].ext_len && strncasecmp( ext, enc_tab[i].ext, ext_len ) == 0 )
-		{
-		if ( n_me_indexes < sizeof(me_indexes)/sizeof(*me_indexes) )
-		    {
-		    me_indexes[n_me_indexes] = i;
-		    ++n_me_indexes;
-		    }
-		goto next;
-		}
-	    }
-	/* No encoding extension found.  Break and look for a type extension. */
 	break;
-
-	next: ;
 	}
 
     /* Binary search for a matching type extension. */
@@ -2632,20 +2602,6 @@ figure_mime( httpd_conn* hc )
 
     /* The last thing we do is actually generate the mime-encoding header. */
     hc->encodings[0] = '\0';
-    encodings_len = 0;
-    for ( i = n_me_indexes - 1; i >= 0; --i )
-	{
-	httpd_realloc_str(
-	    &hc->encodings, &hc->maxencodings,
-	    encodings_len + enc_tab[me_indexes[i]].val_len + 1 );
-	if ( hc->encodings[0] != '\0' )
-	    {
-	    (void) strcpy( &hc->encodings[encodings_len], "," );
-	    ++encodings_len;
-	    }
-	(void) strcpy( &hc->encodings[encodings_len], enc_tab[me_indexes[i]].val );
-	encodings_len += enc_tab[me_indexes[i]].val_len;
-	}
 
     }
 
diff --git a/mime_encodings.txt b/mime_encodings.txt
deleted file mode 100644
index 2d3952d..0000000
--- a/mime_encodings.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# mime_encodings.txt
-#
-# A list of file extensions followed by the corresponding MIME encoding.
-# Extensions not found in the table proceed to the mime_types table.
-
-Z	compress
-gz	gzip
-uu	x-uuencode
diff --git a/mime_types.txt b/mime_types.txt
index d4725d9..3d7ccbd 100644
--- a/mime_types.txt
+++ b/mime_types.txt
@@ -50,6 +50,7 @@ fh7	image/x-freehand
 fhc	image/x-freehand
 gif	image/gif
 gtar	application/x-gtar
+gz	application/gzip
 hdf	application/x-hdf
 hqx	application/mac-binhex40
 htm	text/html; charset=%s
@@ -195,4 +196,5 @@ xpm	image/x-xpixmap
 xsl	text/xml; charset=%s
 xwd	image/x-xwindowdump
 xyz	chemical/x-xyz
+Z	application/x-compress
 zip	application/zip
