--- camel/camel-stub-marshal.c	2006-09-06 16:43:44.953063376 +0530
+++ camel/camel-stub-marshal.c.new	2006-09-06 16:51:27.327771736 +0530
@@ -90,8 +90,12 @@ do_read (CamelStubMarshal *marshal, char
 	ssize_t n;
 	
 	do {
-		if ((n = camel_read (marshal->fd, buf + nread, len - nread)) <= 0)
-			break;
+		if ((n = camel_read (marshal->fd, buf + nread, len - nread)) <= 0) {
+                       if (errno != ETIMEDOUT)
+                               break;
+                       else
+                               n = 0;
+		}
 		nread += n;
 	} while (nread < len);
 	
