I just realized what's probably going on. The log4cxx source code doesn't contain any calls to change the signal mask. This is the problem.
log4cxx starts background threads. You can read a bit about how threads interact with POSIX signals here: http://people.redhat.com/drepper/posix-signal-model.xml In short: signals are delivered to an arbitrary thread that hasn't blocked the signal. log4cxx is creating a thread that doesn't block WINCH, leading to a situation where the WINCH gets delivered to the wrong thread. I can see it in gdb (using "info proc NNNNNN status") and it only shows up when log4cxx has been initialized; otherwise there's one more thread and there are two threads that don't block WINCH. The real bug is in log4cxx here: it should block out every signal it doesn't use itself so as not to interfere with the process it's linked into. However, I should probably come up with a workaround in case they don't fix it, or don't fix it by the time squeeze releases. Daniel -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

