diff --git a/src/sbbs3/mqtt.c b/src/sbbs3/mqtt.c
index fb24170ea723053db5a15ad674287d1d0dcc492b..d19c6fe5df64f02c7f2c75f677a702fd90eeb462 100644
--- a/src/sbbs3/mqtt.c
+++ b/src/sbbs3/mqtt.c
@@ -190,21 +190,23 @@ int mqtt_lputs(struct mqtt* mqtt, enum topic_depth depth, int level, const char*
 	if(mqtt->handle != NULL && str != NULL) {
 		int result;
 		char sub[128];
-		if(mqtt->cfg->mqtt.protocol_version < 5) {
-			mqtt_topic(mqtt, depth, sub, sizeof(sub), "log/%d", level);
-			result = mosquitto_publish_v5(mqtt->handle,
-				/* mid: */NULL,
-				/* topic: */sub,
-				/* payloadlen */strlen(str),
-				/* payload */str,
-				/* qos */mqtt->cfg->mqtt.publish_qos,
-				/* retain */true,
-				/* properties */NULL);
-		} else {
+		mqtt_topic(mqtt, depth, sub, sizeof(sub), "log/%d", level);
+		char timestamp[32];
+		mosquitto_property* props = NULL;
+		time_to_isoDateTimeStr(time(NULL), xpTimeZone_local(), timestamp, sizeof(timestamp));
+		mosquitto_property_add_string_pair(&props, MQTT_PROP_USER_PROPERTY, "time", timestamp);
+		result = mosquitto_publish_v5(mqtt->handle,
+			/* mid: */NULL,
+			/* topic: */sub,
+			/* payloadlen */strlen(str),
+			/* payload */str,
+			/* qos */mqtt->cfg->mqtt.publish_qos,
+			/* retain */true,
+			/* properties */props);
+		if(result == MQTT_SUCCESS) {
 			mqtt_topic(mqtt, depth, sub, sizeof(sub), "log");
 			char lvl[32];
 			sprintf(lvl, "%d", level);
-			mosquitto_property* props = NULL;
 			mosquitto_property_add_string_pair(&props, MQTT_PROP_USER_PROPERTY, "level", lvl);
 			result = mosquitto_publish_v5(mqtt->handle,
 				/* mid: */NULL,
@@ -214,8 +216,8 @@ int mqtt_lputs(struct mqtt* mqtt, enum topic_depth depth, int level, const char*
 				/* qos */mqtt->cfg->mqtt.publish_qos,
 				/* retain */true,
 				/* properties */props);
-			mosquitto_property_free_all(&props);
 		}
+		mosquitto_property_free_all(&props);
 		return result;
 	}
 #endif