--- configure.orig	2008-12-26 23:59:40.779042906 -0600
+++ configure	2008-12-27 00:13:15.265256215 -0600
@@ -1012,20 +1012,25 @@
   if test "$ans" = "true"
   then
     DO_COMPRESSION=true
-    compress=
-    for i in lzma bzip2 gzip bzip tzip pack compress freeze yabba
-    do
-      eval F$i=missing
-      for j in $DEFPATH
-      do
-        if test -f $j/$i
-        then
-	  eval F$i=$j/$i
-	  if [ x$compress = x ]; then compress=$j/$i; fi
-	  break
-        fi
-      done
-    done
+	if [ x$COMPRESS != x ]; then
+		compress=$COMPRESS
+		echo $compress
+	else
+	    compress=
+	    for i in lzma bzip2 gzip bzip tzip pack compress freeze yabba
+	    do
+	      eval F$i=missing
+	      for j in $DEFPATH
+	      do
+	        if test -f $j/$i
+	        then
+		  eval F$i=$j/$i
+		  if [ x$compress = x ]; then compress=$j/$i; fi
+		  break
+	        fi
+	      done
+	    done
+	fi
 
     if [ x$default = x ]; then
       echo ""
