The bug is exatly here: static void stop_process_after(CPROCESS *_object) { ...... /* Vidage du tampon de sortie */ if (THIS->out >= 0) { stream = CSTREAM_stream(THIS); while (!STREAM_eof(stream)) <---- HERE IT FINISHES WITH A SEGFAULT { stream->process.read_something = FALSE; .... Regards, Daniel Campos