I've hit the emacs_abort at line 5510 in process.c a few times in the last week. I haven't found a way to make it reproduce on demand. I tried to narrow the code it's happening in down to a smaller test case, without success. I'd appreciate suggestions for how to track down what is going wrong. I'm working on a Lisp program which has work to do which can be done in parallel, and I'm implementing it using threads. My code has 4 worker threads which pick jobs to do off of a queue (which is made thread-safe with a mutex and condition variables). The jobs consist of an argument to a shell script, which the threads run asynchronously using start-file-process and accept-process-output. This allows the worker threads to be responsive to a user command to cancel the work in progress, although I haven't been using that cancel command when the bug happens. When it has happened, it's been after I run a command which adds 6 jobs to the queue for the 4 threads to process. The crash has happened with two different shell scripts, one which just consists of "exit 1" and another which makes a directory and a symlink. Neither script prints anything to standard output. I've tried using the process object instead of nil as the first argument to accept-process-output and have seen the same crash both ways. Here are the two main functions in my worker threads, 'erb--builder-func' which is passed to 'make-thread' to create the threads, and 'erb--build' which runs the child processes.