Index: tclUnixPipe.c
===================================================================
RCS file: /cvsroot/tcl/tcl/unix/tclUnixPipe.c,v
retrieving revision 1.11
diff -r1.11 tclUnixPipe.c
959,961c959,971
<     bytesRead = read(GetFd(psPtr->inFile), buf, (size_t) toRead);
<     if (bytesRead > -1) {
<         return bytesRead;
---
>     do
>     {
> 	bytesRead = read (GetFd(psPtr->inFile), buf, (size_t) toRead);
>     } while ((bytesRead < 0) && (errno == EINTR));
> 
>     if (bytesRead < 0)
>     {
> 	*errorCodePtr = errno;
> 	return (-1);
>     }
>     else
>     {
> 	return (bytesRead);
963,964d972
<     *errorCodePtr = errno;
<     return -1;
997,999c1005,1017
<     written = write(GetFd(psPtr->outFile), buf, (size_t) toWrite);
<     if (written > -1) {
<         return written;
---
>     do
>     {
> 	written = write(GetFd(psPtr->outFile), buf, (size_t) toWrite);
>     } while ((written < 0) && (errno == EINTR));
> 
>     if (written < 0)
>     {
> 	*errorCodePtr = errno;
> 	return (-1);
>     }
>     else
>     {
> 	return (written);
1001,1002d1018
<     *errorCodePtr = errno;
<     return -1;
