A signal delivery to a thread is not working properly in the kernel when a signal handler is specified. Here is the case: A process blocks all signals and registers a handler for a signal. A newly created thread unblocks that signal. When that signal is sent to a process, the sighandler is not getting called. (if this signal is sent twice, it works) I've attached a small test program to reproduce it using NPTL. The following patch fixes this problem in kernel. Please apply. Thanks, Saurabh Desai