From: marriedto51 <johnmwilson@xxxxxxxxxxxx> > 2010/04/14 08:40:31.197| WARNING: toy_helper #1 (FD 7) exited > 2010/04/14 08:40:31.197| WARNING: toy_helper #3 (FD 11) exited > 2010/04/14 08:40:31.198| WARNING: toy_helper #2 (FD 9) exited > 2010/04/14 08:40:31.198| WARNING: toy_helper #4 (FD 13) exited > 2010/04/14 08:40:31.198| Too few toy_helper processes are running This works for me with squid 2.7 (I did not use setvbuf): fprintf(stderr, "helper: starting...\n"); fflush(stderr); while (fgets(input, sizeof(input), stdin)) { if ((cp=strchr(input, '\n')) == NULL) { fprintf(stderr, "filter: input too big: %s\n", input); } else { *cp = '\0'; } ... fflush(stderr); fflush(stdout); } fprintf(stderr, "helper: stopping...\n");