diff -ur jwhois-4.0.old/src/whois.c jwhois-4.0/src/whois.c
--- jwhois-4.0.old/src/whois.c	2007-06-26 03:00:29.000000000 -0400
+++ jwhois-4.0/src/whois.c	2009-04-29 11:42:56.000000000 -0400
@@ -115,6 +115,7 @@
   unsigned int count, start_count;
   int ret;
   char data[MAXBUFSIZE];
+  fd_set rfds;
 
   count = 0;
 
@@ -124,7 +125,15 @@
 
   do
     {
+      FD_ZERO(&rfds);
+      FD_SET(fd, &rfds);
+      ret = select(fd + 1, &rfds, NULL, NULL, NULL);
+
+      if (ret <= 0)
+        return -1;
+
       ret = read(fd, data, MAXBUFSIZE-1);
+
       if (ret >= 0)
 	{
 	  count += ret;
