anchor.diff:                       );
   
     // The message class definition
  +
  +  { TMQTTMessage }
  +
     TMQTTMessage = class
       private 
         FTopic   : ansistring;
         FPayload : ansistring;
  +      FRetain  : boolean;
   
       public 
         property Topic   : ansistring read FTopic;
         property PayLoad : ansistring read FPayload;
  -
  -      constructor Create(const topic_ : ansistring; const payload_ : ansistring);
  +      property Retain  : boolean read FRetain;
  +
  +      constructor Create(const topic_ : ansistring; const payload_ : ansistring; const retain_: boolean);
       end;
   
       // The acknowledgement class definition
  
positive.code: 
          implementation
  
          constructor TMQTTMessage.Create(const Topic_ : ansistring; const Payload_ : ansistring);
          begin
            // Save the passed parameters
            FTopic   := Topic_;
            FPayload := Payload_;
          end;
  
          constructor TMQTTMessageAck.Create(const messageType_ : TMQTTMessageType;
  
negative.code:             // Protected code.  
              EnterCriticalSection (FCritical);
              try
                FMessageQueue.Push (TMQTTMessage.Create(topic, payload, retain));
              finally
                LeaveCriticalSection (FCritical);
              end;
  