https://gitlab.com/embeddable-common-lisp/ecl/-/issues/705

diff --git src/c/alloc_2.d src/c/alloc_2.d
index 761298d5a..04c69ba52 100644
--- src/c/alloc_2.d
+++ src/c/alloc_2.d
@@ -760,10 +760,12 @@ init_alloc(void)
    *    the begining or to the first byte.
    * 3) Out of the incremental garbage collector, we only use the
    *    generational component.
+   * 4) GC should handle fork() which is used to run subprocess.
    */
   GC_set_no_dls(1);
   GC_set_all_interior_pointers(0);
   GC_set_time_limit(GC_TIME_UNLIMITED);
+  GC_set_handle_fork(1);
   GC_init();
 #ifdef ECL_THREADS
 # if GC_VERSION_MAJOR > 7 || GC_VERSION_MINOR > 1
