anchor.diff:          end;
         until (last_bytes_read<sizeof(ReceiveBuffer)) Or (Terminated) Or (Not FBufferedNetTcpIpClient.Connected);
         {$IFDEF HIGHLOG}If total_read>0 then TLog.NewLog(ltdebug,ClassName,Format('Received %d bytes. Buffer length: %d bytes',[total_read,total_size]));{$ENDIF}
  +      if (total_read>0) and (Not Terminated) and (FBufferedNetTcpIpClient.Connected) and (Assigned(FBufferedNetTcpIpClient.FOnReceivedData)) then begin
  +        FBufferedNetTcpIpClient.DoReceivedData;
  +      end;
       end else begin
         if FBufferedNetTcpIpClient.SocketError<>0 then FBufferedNetTcpIpClient.Disconnect;
       end;
  
positive.code:   FreeAndNil(FReadBuffer);
    FreeAndNil(FSendBuffer);
    inherited;
  end;
  
  procedure TBufferedNetTcpIpClient.DoWaitForData(WaitMilliseconds: Integer; var HasData: Boolean);
  
negative.code:     FCritical : TPCCriticalSection;
      FLastReadTC : TTickCount;
      FBufferedNetTcpIpClientThread : TBufferedNetTcpIpClientThread;
      FOnReceivedData: TNotifyEvent;
    protected
      Procedure DoReceivedData; virtual;
      Function DoWaitForDataInherited(WaitMilliseconds : Integer) : Boolean;
      Procedure DoWaitForData(WaitMilliseconds : Integer; var HasData : Boolean); override;
    public
  