diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 1f9cd5d5f03e94ab6d68e8834edd56ebf8b95f94..340a0d3852751d91f49582c9d442d925c41a251c 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -2406,6 +2406,10 @@ void output_thread(void* arg)
 		if(sbbs->ssh_mode) {
 			int err;
 			pthread_mutex_lock(&sbbs->ssh_mutex);
+			if(sbbs->terminate_output_thread) {
+				pthread_mutex_unlock(&sbbs->ssh_mutex);
+				break;
+			}
 			if (cryptStatusError((err=cryptSetAttribute(sbbs->ssh_session, CRYPT_SESSINFO_SSH_CHANNEL, sbbs->session_channel)))) {
 				GCES(err, sbbs->cfg.node_num, sbbs->ssh_session, "setting channel");
 				ssh_errors++;