there is a memory leak in set_compression(), token.c: dont = strdup(dont); fname = strdup(fname); if (!dont || !fname) return; if strdup(fname) fails but strdup(dont) doesn't, the memory pointed to by dont is leaked, and vice versa. this may not be much but I believe one of set_compression()'s ancestors is invoked inside a loop when in server mode. correct would be: if ((dont = strdup(dont)) == NULL || (fname= strdup(fname))== NULL) return; ps.: I'm not on this list. -- If I traveled to the end of the rainbow As Dame Fortune did intend, Murphy would be there to tell me The pot's at the other end. Lars