diff --git a/main/ZgatewayIR.ino b/main/ZgatewayIR.ino
index 887b06658d..682fbf9863 100644
--- a/main/ZgatewayIR.ino
+++ b/main/ZgatewayIR.ino
@@ -274,8 +274,12 @@ void MQTTtoIR(char* topicOri, JsonObject& IRdata) {
       }
       if (signalSent) { // we acknowledge the sending by publishing the value to an acknowledgement topic, for the moment even if it is a signal repetition we acknowledge also
         Log.notice(F("MQTTtoIR OK" CR));
-        IRdata["origin"] = subjectGTWIRtoMQTT;
-        enqueueJsonObject(IRdata);
+        // copy IRdata to IRdataAck document
+        StaticJsonDocument<JSON_MSG_BUFFER> IRdataAckBuffer;
+        JsonObject IRdataAck = IRdataAckBuffer.to<JsonObject>();
+        IRdataAck = IRdata;
+        IRdataAck["origin"] = subjectGTWIRtoMQTT;
+        enqueueJsonObject(IRdataAck);
       }
       irrecv.enableIRIn(); // ReStart the IR receiver (if not restarted it is not able to receive data)
     } else {