diff --git a/src/syncterm/conn.c b/src/syncterm/conn.c
index 1d4701a3b5fb13cb685f7b405a02541830a13bd9..d24bcb2da1803377fe34bbddd420991de65723df 100644
--- a/src/syncterm/conn.c
+++ b/src/syncterm/conn.c
@@ -43,6 +43,9 @@ int conn_recv(char *buffer, size_t buflen, unsigned timeout)
 
 	if(con_type==CONN_TYPE_SSH) {
 		int	status;
+		if(!socket_check(conn_socket, &data_waiting, NULL, timeout))
+			return(-1);
+
 		status=cl.PopData(ssh_session, buffer, buflen, &rd);
 		if(cryptStatusError(status)) {
 			char	str[1024];