diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index cc321472a19df7063f5bd4bbc4cce85b6d9c59bc..876055bc526146af4aa6edf8098bf82573c059fb 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -1981,6 +1981,10 @@ static int crypt_pop_channel_data(sbbs_t *sbbs, char *inbuf, int want, int *got)
 							sbbs->sftp_channel = cid;
 						}
 					}
+					if (cname && sbbs->session_channel == -1 && strcmp(cname, "shell") == 0) {
+						sbbs->session_channel = cid;
+					}
+
 					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);