Thanks for the info on EPIPE. When the EPIPE occurs during socket send() or send_file(), the PPP connection remains alive, and I can simply reestablish another socket. Yet sometimes the underlying PPP connection drops during a socket send() or send_file(), and my program waits infinitely on the send() or send_file(). No EPIPE or any signal occurs. When this PPP disconnection happens, how can I get a signal interrupt into the send() or send_file(), so the program can take corrective measures? By the way I have select() before send(), but that makes no difference. The program passes through select() okay, yet still waits infinitely in send() if the PPP connection drops during send().