--- loncom/loncnew	2010/12/21 11:17:03	1.92
+++ loncom/loncnew	2011/01/20 11:19:37	1.94
@@ -2,7 +2,7 @@
 # The LearningOnline Network with CAPA
 # lonc maintains the connections to remote computers
 #
-# $Id: loncnew,v 1.92 2010/12/21 11:17:03 foxr Exp $
+# $Id: loncnew,v 1.94 2011/01/20 11:19:37 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -85,7 +85,7 @@ my $ClientConnection = 0;	# Uniquifier f
 
 my $DebugLevel = 0;
 my $NextDebugLevel= 2;		# So Sigint can toggle this.
-my $IdleTimeout= 7200;		# Wait two hours before pruning connections.
+my $IdleTimeout= 5*60;		# Seconds to wait prior to pruning connections.
 
 my $LogTransactions = 0;	# When True, all transactions/replies get logged.
 my $executable      = $0;	# Get the full path to me.
@@ -1733,6 +1733,13 @@ sub ChildProcess {
 		  cb       => \&ToggleDebug,
 		  data     => "INT");
 
+    # Block the pipe signal we'll get when the socket disconnects.  We detect 
+    # socket disconnection via send/receive failures. On disconnect, the
+    # socket becomes readable .. which will force the disconnect detection.
+
+    my $set = POSIX::SigSet->new(SIGPIPE);
+    sigprocmask(SIG_BLOCK, $set);
+
     #  Figure out if we got passed a socket or need to open one to listen for
     #  client requests.