diff --git a/src/sbbs3/answer.cpp b/src/sbbs3/answer.cpp
index 9049256e1e546bdb623bb0459d54e67297ffd2d4..9420a6548b6b0dd35ccdac6dd4fc45aecffb9c97 100644
--- a/src/sbbs3/answer.cpp
+++ b/src/sbbs3/answer.cpp
@@ -319,6 +319,16 @@ bool sbbs_t::answer()
 			lprintf(LOG_DEBUG, "%04d SSH [%s] term: %s", client_socket, client.addr, terminal);
 		}
 		pthread_mutex_unlock(&ssh_mutex);
+
+		if(REALSYSOP && (cfg.sys_misc&SM_SYSPASSLOGIN) && (cfg.sys_misc&SM_R_SYSOP)) {
+			rioctl(IOFI);       /* flush input buffer */
+			if(!chksyspass()) {
+				bputs(text[InvalidLogon]);
+				hangup();
+				useron.number=0;
+				return(false);
+			}
+		}
 	}
 #endif