Gonzalo, Thanks for confirming that the pointers I'm seeing indeed indicate something is trashing memory. Now, how "my code" could be doing this is another story ;-) The wrapping of termios is here: http://raa.ruby-lang.org/project/ruby-termios Yes, I'll give valgrind another try, although I didn't have much luck with it when I tried a couple months ago. At least I now have an idea what's getting trashed. But, let's face it: the C-Ruby interpreter plays fast and loose with memory regions. So, I'm first going to try using set_trace_func to get a history of all activity up to the gdb breakpoint on the GC of the invalid stack frame after I've set GC.limit=0 to force a GC on every object allocation. I'd love to post a .zip, .tar or whatever. However, you'd need a our custom robotic hardware to run it! I've been unable to duplicate the failure in simulation thus far. That's why it's a "nasty" bug. If anyone would like, I can post some core files on our FTP server. - brent