--- unlzw.c.orig	2010-01-21 05:23:53.000000000 -0500
+++ unlzw.c	2010-01-21 05:25:51.000000000 -0500
@@ -248,7 +248,8 @@
 	int  o;
 
     resetbuf:
-	e = insize-(o = (posbits>>3));
+	o = posbits >> 3;
+	e = o <= insize ? insize - o : 0;
 
 	for (i = 0 ; i < e ; ++i) {
 	    inbuf[i] = inbuf[i+o];
