When make-regexp throws an error it leaks memory, eg (while #t (false-if-exception (make-regexp "["))) I'm looking at the changes below for the cvs and for 1.6, I think they get the mallocated counting right. * regex-posix.c (scm_make_regexp): Free rx on error, to avoid memory leak.