diff --git a/src/session_server.c b/src/session_server.c
index a4cc83c..51b9a99 100644
--- a/src/session_server.c
+++ b/src/session_server.c
@@ -357,7 +357,7 @@
 API int
 nc_accept_inout(int fdin, int fdout, const char *username, struct nc_session **session)
 {
-    if (fdin < 0 || fdout < 0 || !username || !session) {
+    if (!server_opts.ctx || (fdin < 0) || (fdout < 0) || !username || !session) {
         ERRARG;
         return -1;
     }
@@ -408,6 +408,10 @@
 API void
 nc_ps_free(struct nc_pollsession *ps)
 {
+    if (!ps) {
+        return;
+    }
+
     free(ps->sessions);
     free(ps);
 }
@@ -664,18 +668,15 @@
     }
 
     /* reading an RPC and sending a reply must be atomic */
-    ret = session_ti_lock(session, timeout);
-    if (ret > 0) {
-        /* error */
-        return -1;
-    } else if (ret < 0) {
-        /* timeout */
-        return 0;
+    ret = nc_timedlock(session->ti_lock, timeout, NULL);
+    if (ret != 1) {
+        /* error or timeout */
+        return ret;
     }
 
     msgtype = nc_recv_rpc(session, &rpc);
     if (msgtype == NC_MSG_ERROR) {
-        session_ti_unlock(session);
+        pthread_mutex_unlock(session->ti_lock);
         if (session->status != NC_STATUS_RUNNING) {
             return 2;
         }
@@ -685,7 +686,7 @@
     /* process RPC */
     msgtype = nc_send_reply(session, rpc);
 
-    session_ti_unlock(session);
+    pthread_mutex_unlock(session->ti_lock);
 
     if (msgtype == NC_MSG_ERROR) {
         nc_server_rpc_free(rpc);
