anchor.diff:    CreateNamedPipe;
     while not FConnected do begin
   
  -    if QueryStopServer
  -    then Abort;
  +    if QueryStopServer then begin
  +      InternalClose;
  +      Abort;
  +    end;
   
       if Assigned(fnAccepting)
       then fnAccepting();
  
positive.code:         ERROR_IO_PENDING : begin
            dwWait := overlapped.WaitFor(FTimeout);
  
            if (dwWait = WAIT_TIMEOUT)
            then raise TTransportExceptionTimedOut.Create('Pipe write timed out');
  
            if (dwWait <> WAIT_OBJECT_0)
            or not GetOverlappedResult( FPipe, overlapped.Overlapped, cbWritten, TRUE)
  
negative.code:         ERROR_IO_PENDING : begin
            dwWait := overlapped.WaitFor(FTimeout);
  
            if (dwWait = WAIT_TIMEOUT) then begin
              CancelIo( FPipe);  // prevents possible AV on invalid overlapped ptr
              raise TTransportExceptionTimedOut.Create('Pipe read timed out');
            end;
  
            if (dwWait <> WAIT_OBJECT_0)
            or not GetOverlappedResult( FPipe, overlapped.Overlapped, cbRead, TRUE)
  