Hi, It think there is a bug in cPipe::Open() : if (strcmp(Mode, "r") == 0) { mode = "r"; iopipe = 1; } close(fd[iopipe]); f = fdopen(fd[1 - iopipe], mode); if ((f = fdopen(fd[1 - iopipe], mode)) == NULL) { LOG_ERROR; close(fd[1 - iopipe]); } Seems to be a double fdopen(), leaking some memory/stream descriptor. Regards. -- Stefan Huelswitt s.huelswitt@xxxxxx | http://www.muempf.de/