Hi ! I may have found something that replaces finalizers. I followed Andy and Amirouche advices and used guardians, as in guile-sqlite3. The idea here is to create a guardian per pointer-type to finalize. A pumper function that operates on this guardian is also created. This pumper function knows the git_libgit2_xxx function to call to free the pointers stored in guardians. Finally, all pumpers are registered into a hook that is run before shutting down. I tried it on "repository" pointers but it can be easily extended to the other finalizers. WDYT ? Thanks, Mathieu