anchor.diff:    ResponseVH: TBytes;
     ConnectReturn: Integer;
   begin
  -  if (FCurrentData.FixedHeader <> 0) then
  +  if (CurrentMessage.FixedHeader <> 0) then
       begin
  -      MessageType := FCurrentData.FixedHeader shr 4;
  +      MessageType := CurrentMessage.FixedHeader shr 4;
   
         if (MessageType = Ord(MQTT.CONNACK)) then
           begin
             // Check if we were given a Connect Return Code.
             ConnectReturn := 0;
             // Any return code except 0 is an Error
  -          if ((Length(FCurrentData.Data) > 0) and (Length(FCurrentData.Data) < 4)) then
  +          if ((Length(CurrentMessage.Data) > 0) and (Length(CurrentMessage.Data) < 4)) then
               begin
  -              ConnectReturn := FCurrentData.Data[1];
  -              Exception.Create('Connect Error Returned by the Broker. Error Code: ' + IntToStr(FCurrentData.Data[1]));
  +              ConnectReturn := CurrentMessage.Data[1];
  +              Exception.Create('Connect Error Returned by the Broker. Error Code: ' + IntToStr(CurrentMessage.Data[1]));
               end;
             if Assigned(OnConnAck) then OnConnAck(Self, ConnectReturn);
           end
  
positive.code:                     writeln ('Error: 2:');
                      rxState := 3;
                  end;
                  FCurrentData := CurrentMessage;
                  Synchronize(@HandleData);
                  rxState := 0;
              end;
  
negative.code:   TMQTTReadThread = class(TThread)
    private
      FPSocket: PTCPBlockSocket;
      CurrentMessage: TMQTTMessage;
      // Events
      FConnAckEvent: TConnAckEvent;
      FPublishEvent: TPublishEvent;
  