--- slim/trunk/server/Slim/Player/Source.pm	2006-09-15 02:13:36.000000000 -0400
+++ /opt/slimserver/Slim/Player/Source.pm	2006-09-16 11:29:41.000000000 -0400
@@ -21,11 +21,12 @@
 BEGIN {
 	if ($^O =~ /Win32/) {
 		*EINTR       = sub () { 10004 };
+		*ECHILD      = sub () { 10010 };
 		*EWOULDBLOCK = sub () { 10035 };
 		*EINPROGRESS = sub () { 10036 };
 	} else {
 		require Errno;
-		import Errno qw(EWOULDBLOCK EINPROGRESS EINTR);
+		import Errno qw(EWOULDBLOCK EINPROGRESS EINTR ECHILD);
 	}
 }
 
@@ -1777,6 +1778,11 @@
 					$::d_source && msg("Got EINTR - will try again later.\n"); 
 					return undef;
 
+	                        } elsif ($! == ECHILD) {
+  	 
+  	                                $::d_source && msg("Got ECHILD - for some reason.\n");
+  	                                return undef;
+
 				} else {
 
 					$::d_source && msg("readlen undef: ($!)" . ($! + 0) . "\n");