diff --git a/src/io.c b/src/io.c
index 74a1eef..6a81932 100644
--- a/src/io.c
+++ b/src/io.c
@@ -416,7 +416,7 @@
         /* EINTR is handled, it resumes waiting */
         ret = ssh_channel_poll_timeout(session->ti.libssh.channel, timeout, 0);
         if (ret == SSH_ERROR) {
-            ERR("Session %u: polling on the SSH channel failed (%s).", session->id,
+            ERR("Session %u: SSH channel poll error (%s).", session->id,
                 ssh_get_error(session->ti.libssh.session));
             session->status = NC_STATUS_INVALID;
             session->term_reason = NC_SESSION_TERM_OTHER;
@@ -433,13 +433,19 @@
         } else { /* ret == 0 */
             fds.revents = 0;
         }
-        /* fallthrough */
+        break;
 #endif
 #ifdef NC_ENABLED_TLS
     case NC_TI_OPENSSL:
-        if (session->ti_type == NC_TI_OPENSSL) {
-            fds.fd = SSL_get_fd(session->ti.tls);
+        ret = SSL_pending(session->ti.tls);
+        if (ret) {
+            /* some buffered TLS data available */
+            ret = 1;
+            fds.revents = POLLIN;
+            break;
         }
+
+        fds.fd = SSL_get_fd(session->ti.tls);
         /* fallthrough */
 #endif
     case NC_TI_FD:
@@ -447,16 +453,13 @@
             fds.fd = session->ti.fd.in;
         }
 
-        /* poll only if it is not an SSH session */
-        if (ret == -2) {
-            fds.events = POLLIN;
-            fds.revents = 0;
+        fds.events = POLLIN;
+        fds.revents = 0;
 
-            sigfillset(&sigmask);
-            pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);
-            ret = poll(&fds, 1, timeout);
-            pthread_sigmask(SIG_SETMASK, &origmask, NULL);
-        }
+        sigfillset(&sigmask);
+        pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);
+        ret = poll(&fds, 1, timeout);
+        pthread_sigmask(SIG_SETMASK, &origmask, NULL);
 
         break;
 
diff --git a/src/session_server.c b/src/session_server.c
index 5b30b80..2b3902c 100644
--- a/src/session_server.c
+++ b/src/session_server.c
@@ -1164,7 +1164,7 @@
                 r = ssh_channel_poll_timeout(cur_session->ti.libssh.channel, 0, 0);
                 if (r < 1) {
                     if (r == SSH_EOF) {
-                        sprintf(msg, "SSH channel unexpectedly closed");
+                        sprintf(msg, "SSH channel unexpected EOF");
                         term_reason = NC_SESSION_TERM_DROPPED;
                         poll_ret = -2;
                     } else if (r == SSH_ERROR) {
