Unblock signal before raising it in its own handler (needed with BSD signal semantics). --- gzip-1.3.6/gzip.c.orig 2006-11-30 00:34:53.292056000 +0100 +++ gzip-1.3.6/gzip.c 2006-11-30 18:29:19.736957250 +0100 @@ -1851,8 +1851,13 @@ abort_gzip_signal (sig) int sig; { + sigset_t ss; + remove_output_file (); signal (sig, SIG_DFL); + sigemptyset (&ss); + sigaddset (&ss, sig); + sigprocmask (SIG_UNBLOCK, &ss, NULL); raise (sig); abort (); }