=== modified file 'src/helper.cc'
--- src/helper.cc	2012-01-20 18:55:04 +0000
+++ src/helper.cc	2012-02-27 19:53:55 +0000
@@ -906,6 +906,8 @@
     if (Comm::IsConnOpen(srv->readPipe)) {
         AsyncCall::Pointer call = commCbCall(5,4, "helperHandleRead",
                                              CommIoCbPtrFun(helperHandleRead, srv));
+        if (srv->rbuf_sz - srv->roffset - 1 <= 0)
+            srv->rbuf = (char *)memReallocBuf(srv->rbuf, srv->rbuf_sz + 4096, &srv->rbuf_sz);
         comm_read(srv->readPipe, srv->rbuf + srv->roffset, srv->rbuf_sz - srv->roffset - 1, call);
     }
 }
@@ -986,6 +988,8 @@
     if (Comm::IsConnOpen(srv->readPipe)) {
         AsyncCall::Pointer call = commCbCall(5,4, "helperStatefulHandleRead",
                                              CommIoCbPtrFun(helperStatefulHandleRead, srv));
+        if (srv->rbuf_sz - srv->roffset - 1 <= 0)
+            srv->rbuf = (char *)memReallocBuf(srv->rbuf, srv->rbuf_sz + 4096, &srv->rbuf_sz);
         comm_read(srv->readPipe, srv->rbuf + srv->roffset, srv->rbuf_sz - srv->roffset - 1, call);
     }
 }


