Everybody, I'm working on my client/server library and I've run into a rather elusive bug. It may be elusive because my skills with GDB are rather shoddy (usually I'm pretty good at achieving my goal of not needing to use it). The attachment is my code for the library (as well as a small build script and tester). It's documented in the Acceptor module, but when I run the server under high loads (10 thread pinging it 1,000,000 times or so each), one of three things happens: 1. Nothing (works like it should) 2. Unix.accept raises an Unix.Unix_error(12, "accept", "") at some random time (sometimes, I believe, after all of the connections have been made, but I feel very wrong in thinking this) 3. Segmentation Fault at a random time. These bugs sometimes come up immediately into execution and sometimes 5 minutes or so into execution. I don't know if this is a bug in my tester, my library, OCaml, or Linux. Any ideas? I think it may just be that I've been staring at the code for too long and need another set of eyes to look at it... --Jonathan Bryant