modified:   pipe.cpp