anchor.diff:  
   constructor TNamedPipeTransportClientEndImpl.Create( const aPipeName : string; const aShareMode: DWORD;
                                      const aSecurityAttributes: PSecurityAttributes;
  -                                   const aTimeOut : DWORD);
  +                                   const aTimeOut, aOpenTimeOut : DWORD);
   // Named pipe constructor
   begin
     inherited Create( nil, nil);
  -  FInputStream  := TNamedPipeStreamImpl.Create( aPipeName, TRUE, aShareMode, aSecurityAttributes, aTimeOut);
  +  FInputStream  := TNamedPipeStreamImpl.Create( aPipeName, TRUE, aShareMode, aSecurityAttributes, aTimeOut, aOpenTimeOut);
     FOutputStream := FInputStream;  // true for named pipes
   end;
   
  
positive.code: begin
    if IsOpen then Exit;
  
    retries := Max( 1, Round( 1.0 * FTimeOut / INTERVAL));
    timeout := FTimeOut;
  
    // if the server hasn't gotten to the point where the pipe has been created, at least wait the timeout
    // According to MSDN, if no instances of the specified named pipe exist, the WaitNamedPipe function
    // returns IMMEDIATELY, regardless of the time-out value.
    while not WaitNamedPipe( PChar(FPipeName), INTERVAL) do begin
      dwErr := GetLastError;
      if dwErr <> ERROR_FILE_NOT_FOUND
  
negative.code:                         const aEnableOverlapped : Boolean;
                          const aShareMode: DWORD = 0;
                          const aSecurityAttributes: PSecurityAttributes = nil;
                          const aTimeOut : DWORD = DEFAULT_THRIFT_TIMEOUT;
                          const aOpenTimeOut : DWORD = DEFAULT_THRIFT_PIPE_OPEN_TIMEOUT);  overload;
    end;
  
  
  