--- b/librvp-0.9.7/rvp.c	2008-04-06 03:16:31.000000000 +0530
+++ a/librvp-0.9.7/rvp.c	2008-12-25 13:05:58.000000000 +0530
@@ -5380,12 +5380,13 @@
     return;
   }
 
-  if ( read( sock, &data, 1 ) > 0 || errno == EWOULDBLOCK ) {
-    if ( errno == EWOULDBLOCK ) {
+  rc = read( sock, &data, 1 );
+  if ((rc == -1) && (errno == EWOULDBLOCK))
+  {
       errno = 0;
       return;
-    }
-
+  }
+  else if (rc > 0) {
     gfud->len++;
 
     if (gfud->len == gfud->data_len + 1) {
