--- src/common/Dispatch/rpcbuf.C.orig	Wed Oct 20 19:42:58 1999
+++ src/common/Dispatch/rpcbuf.C	Wed Oct 20 19:44:12 1999
@@ -977,12 +977,20 @@
 // jfasch 24 Apr 1995
 int rpcbuf :: rpc_read (int fd, char* buf, int len) {
    int nread ;
+#ifdef __FreeBSD__
+   while ((nread = ::read (fd, buf, len)) < 0  &&  errno == EINTR) ;
+#else
    while ((nread = ::read (fd, buf, len)) < 0  &&  ::errno == EINTR) ;
+#endif
    return nread ;
 }
 int rpcbuf :: rpc_write (int fd, const char* buf, int len) {
    int nwritten ;
+#ifdef __FreeBSD__
+   while ((nwritten = ::write (fd, buf, len)) < 0  &&  errno == EINTR) ;
+#else
    while ((nwritten = ::write (fd, buf, len)) < 0  &&  ::errno == EINTR) ;
+#endif
    return nwritten ;
 }
 #endif
