revised siggen.c