Hi Oleg. Here are the splitted patches. What do you think? I admit that I haven't found yet the solutions to all the problems you pointed yesterday, namely to the check of "real_parent == init" and ptrace_reparented, so ignore these 2 for now. But probably now you can have a look into the exit.c part? The first 2 patches are just the rearrangements and should not incur any functional changes. The third one is an implementation of pr_detach. This time, the child is allowed to disappear from parent's radar in case the old parent was slow to wait(), and the process have exited and the new parent have wait()ed. This is probably fine and not worth the complications, what do you think? Thanks for your time!