diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp
index 493ab2f5be92baa1db0e9bc76741ea3a10b3c97b..61e85590fe6a55a6426d4b1084c124126085b780 100644
--- a/src/sbbs3/con_out.cpp
+++ b/src/sbbs3/con_out.cpp
@@ -569,19 +569,21 @@ bool sbbs_t::update_nodeterm(void)
 	}
 	strListFree(&ini);
 
-	char str[256];
-	char topic[128];
-	SAFEPRINTF(topic, "node%u/terminal", cfg.node_num);
-	snprintf(str, sizeof(str), "%lu\t%lu\t%s\t%s\t%lx\t%lx\t%lx"
-		,cols
-		,rows
-		,term_type()
-		,term_charset()
-		,term_supports()
-		,mouse_mode
-		,console
-	);
-	mqtt_pub_strval(&startup->mqtt, TOPIC_BBS, topic, str);
+	if(cfg.mqtt.enabled) {
+		char str[256];
+		char topic[128];
+		SAFEPRINTF(topic, "node%u/terminal", cfg.node_num);
+		snprintf(str, sizeof(str), "%lu\t%lu\t%s\t%s\t%lx\t%lx\t%lx"
+			,cols
+			,rows
+			,term_type()
+			,term_charset()
+			,term_supports()
+			,mouse_mode
+			,console
+		);
+		mqtt_pub_strval(&startup->mqtt, TOPIC_BBS, topic, str);
+	}
 	return result;
 }
 
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 9f797962ed6fe20484b24383c4dbbbc2e1584a45..618e2ee638f0384431fa908e93c7b4f1ce2cf1c6 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -2481,10 +2481,12 @@ void output_thread(void* arg)
 					sem_post(startup->node_spysem[sbbs->cfg.node_num-1]);
 			}
 			/* Spy on the user remotely */
-			int result = mqtt_pub_message(&startup->mqtt, TOPIC_BBS, spy_topic, buf+bufbot, i);
-			if(result != MQTT_SUCCESS)
-				lprintf(LOG_WARNING, "%s ERROR %d (%d) publishing node output (%u bytes): %s"
-					,node, result, errno, i, spy_topic);
+			if(sbbs->cfg.mqtt.enabled) {
+				int result = mqtt_pub_message(&startup->mqtt, TOPIC_BBS, spy_topic, buf+bufbot, i);
+				if(result != MQTT_SUCCESS)
+					lprintf(LOG_WARNING, "%s ERROR %d (%d) publishing node output (%u bytes): %s"
+						,node, result, errno, i, spy_topic);
+			}
 			if(spy_socket[sbbs->cfg.node_num-1]!=INVALID_SOCKET)
 				(void)sendsocket(spy_socket[sbbs->cfg.node_num-1],(char*)buf+bufbot,i);
 #ifdef __unix__
diff --git a/src/sbbs3/putnode.cpp b/src/sbbs3/putnode.cpp
index d77f84a41b16458c0eeb567410fe52b7646b3054..9820cff2906745bbbb54a0b3d07587b08ff5d986 100644
--- a/src/sbbs3/putnode.cpp
+++ b/src/sbbs3/putnode.cpp
@@ -91,21 +91,22 @@ int sbbs_t::putnodedat(uint number, node_t* node)
 	}
 	pthread_mutex_unlock(&nodefile_mutex);
 
-	snprintf(str, sizeof(str), "%u\t%u\t%u\t%u\t%x\t%u\t%u\t%u"
-		,node->status
-		,node->action
-		,node->useron
-		,node->connection
-		,node->misc
-		,node->aux
-		,node->extaux
-		,node->errors
-		);
-	SAFEPRINTF(topic, "node%u/status", number + 1);
-	int result = mqtt_pub_strval(&startup->mqtt, TOPIC_BBS, topic, str);
-	if(result != MQTT_SUCCESS)
-		lprintf(LOG_WARNING, "ERROR %d (%d) publishing node status: %s", result, errno, topic);
-
+	if(cfg.mqtt.enabled) {
+		snprintf(str, sizeof(str), "%u\t%u\t%u\t%u\t%x\t%u\t%u\t%u"
+			,node->status
+			,node->action
+			,node->useron
+			,node->connection
+			,node->misc
+			,node->aux
+			,node->extaux
+			,node->errors
+			);
+		SAFEPRINTF(topic, "node%u/status", number + 1);
+		int result = mqtt_pub_strval(&startup->mqtt, TOPIC_BBS, topic, str);
+		if(result != MQTT_SUCCESS)
+			lprintf(LOG_WARNING, "ERROR %d (%d) publishing node status: %s", result, errno, topic);
+	}
 	if(wr!=sizeof(node_t)) {
 		errno=wrerr;
 		errormsg(WHERE,ERR_WRITE,"nodefile",number+1);