diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index b55f447778951f228392f11b2936d9ec0cd2709f..5e6cb7628673eb3f2cef15d5c080d97ffcc094b7 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -1986,22 +1986,29 @@ static int crypt_pop_channel_data(sbbs_t *sbbs, char *inbuf, int want, int *got)
 					}
 
 					if (cid != sbbs->sftp_channel && cid != sbbs->session_channel) {
-						lprintf(LOG_WARNING, "Node %d SSH WARNING: attempt to use channel '%s' (%d != %d or %d)"
-							, sbbs->cfg.node_num, cname ? cname : "<unknown>", cid, sbbs->session_channel, sbbs->sftp_channel);
-						if (cname) {
-							free_crypt_attrstr(cname);
-							cname = nullptr;
-						}
-						if (ssname) {
-							free_crypt_attrstr(ssname);
-							ssname = nullptr;
-						}
-						closing_channel = cid;
-						if (cryptStatusError(status = cryptSetAttribute(sbbs->ssh_session, CRYPT_SESSINFO_SSH_CHANNEL_ACTIVE, 0))) {
-							sbbs->log_crypt_error_status_sock(status, "closing channel");
-							return status;
+						if (cname == nullptr || strcmp(cname, "session") != 0) {
+							lprintf(LOG_WARNING, "Node %d SSH WARNING: attempt to use channel '%s' (%d != %d or %d)"
+								, sbbs->cfg.node_num, cname ? cname : "<unknown>", cid, sbbs->session_channel, sbbs->sftp_channel);
+							if (cname) {
+								free_crypt_attrstr(cname);
+								cname = nullptr;
+							}
+							if (ssname) {
+								free_crypt_attrstr(ssname);
+								ssname = nullptr;
+							}
+							closing_channel = cid;
+							if (cryptStatusError(status = cryptSetAttribute(sbbs->ssh_session, CRYPT_SESSINFO_SSH_CHANNEL_ACTIVE, 0))) {
+								sbbs->log_crypt_error_status_sock(status, "closing channel");
+								return status;
+							}
 						}
 					}
+					free_crypt_attrstr(cname);
+					cname = nullptr;
+					free_crypt_attrstr(ssname);
+					ssname = nullptr;
+
 					continue;
 				}
 				if (cid != -1) {