Hello all, Here's a set of patches for stable-2.0 that make (ice-9 popen) and guardians thread-safe. These patches fix . (please disregard the preliminary patches I posted in that bug report). These patches also lay the groundwork for conveniently blocking asyncs while mutexes are held, to prevent the deadlocks that can arise when asyncs are run while a mutex is held, and one of the asyncs runs code that tries to lock the same mutex, as discussed here: http://lists.gnu.org/archive/html/guile-devel/2013-08/msg00025.html http://lists.gnu.org/archive/html/guile-devel/2013-08/msg00030.html In this patch set, I only block asyncs in two places: when the guardian mutex is held, and when the 'overrides_lock' is held in procprop.scm, which has caused deadlocks for me in practice. However, in the future I'd like to make a more comprehensive effort to find other places where this should be done. Comments and suggestions welcome. Mark