I just talked to Bob the Builder, apparently the problem with the GUI listener code had to do with begin and end delimiters in the C source. Someone added debug statements to an if and a while that were not wrapped in braces, so they evaluated the first statement (the debug) and then did the second one anyway (what was either being tested or evaluated). if (blah) printf("debug: "); callFunction(); Does the printf if blah is true, then executes callFunction() anyway. It should read: if (blah) { printf("debug: "); callFunction(); } This took six months for the vendor to find. Imagine if anyone stuck it into a debugger and stepped through it in that time. I would have, but there is a failsafe in my brain that makes me blind whenever I encounter poorly written ANSI C TCP/IP socket code for UCX on VMS. I'm genetically perfect like that.