Hi Guile devs, I'm hacking on GNU LilyPond and recently wondered if Guile could run without Java finalization that prevents collection of chains of unreachable objects. I found that the functionality is only needed once the first guardian is created, so it's possible to delay enabling the mode until then. This required some fixes to free functions that assumed dependent objects to be freed only later (see first two patches). The third patch delays ensuring Java finalization to scm_make_guardian, but doesn't disable it explicitly (it's on by default in bdwgc). This could now be done right after GC_INIT(), but it's not clear (at least to me) whether client applications actually rely it, so I think it's better if that's not done in Guile itself. Please consider applying, the fixes potentially also to stable-2.2. Thanks Jonas