anchor.diff:    Callback: THproseCallback1;
     ErrorEvent: THproseErrorEvent;
     ResultType: PTypeInfo; ResultMode: THproseResultMode; Simple: Boolean);
  -begin
  +var
  +  FullName: string;
  +begin
  +  if FNameSpace <> '' then
  +    FullName := FNameSpace + '_' + Name
  +  else
  +    FullName := Name;
     if Blocking then
  -    TAsyncInvokeThread1.Create(Self, Name, Args, Callback, ErrorEvent, ResultType, ResultMode, Simple)
  +    TAsyncInvokeThread1.Create(Self, FullName, Args, Callback, ErrorEvent, ResultType, ResultMode, Simple)
     else
       try
  -      SendAndReceive(DoOutput(Name, Args, Simple),
  -        TAsyncInvokeContext.Create(Self, Name, Callback, ErrorEvent, ResultType, ResultMode).Callback);
  +      SendAndReceive(DoOutput(FullName, Args, Simple),
  +        TAsyncInvokeContext.Create(Self, FullName, Callback, ErrorEvent, ResultType, ResultMode).Callback);
       except
         on E: Exception do begin
           if Assigned(ErrorEvent) then
  -          ErrorEvent(Name, E)
  +          ErrorEvent(FullName, E)
           else if Assigned(FErrorEvent) then
  -          FErrorEvent(Name, E);
  +          FErrorEvent(FullName, E);
         end;
       end;
   end;
  
positive.code:   Callback: THproseCallback2<T>;
    ErrorEvent: THproseErrorEvent;
    ByRef: Boolean; Simple: Boolean);
  begin
    if Blocking then
      TAsyncInvokeThread2<T>.Create(Self, Name, Args, Callback, ErrorEvent, ByRef, Simple)
    else
      try
        SendAndReceive(DoOutput(Name, Args, ByRef, Simple),
          TAsyncInvokeContext<T>.Create(Self, Name, Callback, ErrorEvent).Callback);
      except
        on E: Exception do begin
          if Assigned(ErrorEvent) then
            ErrorEvent(Name, E)
          else if Assigned(FErrorEvent) then
            FErrorEvent(Name, E);
        end;
      end;
  end;
  {$ENDIF}
  
  function THproseClient.UseService(const AUri: string): Variant;
  begin
    if AUri <> '' then FUri := AUri;
    Result := ObjToVar(Self);
  end;
  
  
negative.code: procedure THproseClient.Invoke<T>(const Name: string; const Args: array of const;
    Callback: THproseCallback1<T>;
    ErrorEvent: THproseErrorEvent; Simple: Boolean);
  var
    FullName: string;
  begin
    if FNameSpace <> '' then
      FullName := FNameSpace + '_' + Name
    else
      FullName := Name;
    if Blocking then
      TAsyncInvokeThread1<T>.Create(Self, FullName, Args, Callback, ErrorEvent, Simple)
    else
      try
        SendAndReceive(DoOutput(FullName, Args, Simple),
          TAsyncInvokeContext<T>.Create(Self, FullName, Callback, ErrorEvent).Callback);
      except
        on E: Exception do begin
          if Assigned(ErrorEvent) then
            ErrorEvent(FullName, E)
          else if Assigned(FErrorEvent) then
            FErrorEvent(FullName, E);
        end;
      end;
  end;
  