diff --git a/src/session_server_ssh.c b/src/session_server_ssh.c
index b97c39f..c8fc072 100644
--- a/src/session_server_ssh.c
+++ b/src/session_server_ssh.c
@@ -148,7 +148,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_add_hostkey(name, idx, endpt->opts.ssh);
+
     /* UNLOCK */
     pthread_rwlock_unlock(&server_opts.endpt_lock);
 
@@ -194,7 +196,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_add_hostkey(name, idx, endpt->opts.ssh);
+
     /* UNLOCK */
     nc_server_ch_client_unlock(client);
 
@@ -271,7 +275,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_del_hostkey(name, idx, endpt->opts.ssh);
+
     /* UNLOCK */
     pthread_rwlock_unlock(&server_opts.endpt_lock);
 
@@ -290,7 +296,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_del_hostkey(name, idx, endpt->opts.ssh);
+
     /* UNLOCK */
     nc_server_ch_client_unlock(client);
 
@@ -360,7 +368,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_mov_hostkey(key_mov, key_after, endpt->opts.ssh);
+
     /* UNLOCK */
     pthread_rwlock_unlock(&server_opts.endpt_lock);
 
@@ -380,7 +390,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_mov_hostkey(key_mov, key_after, endpt->opts.ssh);
+
     /* UNLOCK */
     nc_server_ch_client_unlock(client);
 
@@ -405,7 +417,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_set_auth_methods(auth_methods, endpt->opts.ssh);
+
     /* UNLOCK */
     pthread_rwlock_unlock(&server_opts.endpt_lock);
 
@@ -424,7 +438,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_set_auth_methods(auth_methods, endpt->opts.ssh);
+
     /* UNLOCK */
     nc_server_ch_client_unlock(client);
 
@@ -442,7 +458,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = endpt->opts.ssh->auth_methods;
+
     /* UNLOCK */
     pthread_rwlock_unlock(&server_opts.endpt_lock);
 
@@ -461,7 +479,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = endpt->opts.ssh->auth_methods;
+
     /* UNLOCK */
     nc_server_ch_client_unlock(client);
 
@@ -491,7 +511,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_set_auth_attempts(auth_attempts, endpt->opts.ssh);
+
     /* UNLOCK */
     pthread_rwlock_unlock(&server_opts.endpt_lock);
 
@@ -510,7 +532,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_set_auth_attempts(auth_attempts, endpt->opts.ssh);
+
     /* UNLOCK */
     nc_server_ch_client_unlock(client);
 
@@ -540,7 +564,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_set_auth_timeout(auth_timeout, endpt->opts.ssh);
+
     /* UNLOCK */
     pthread_rwlock_unlock(&server_opts.endpt_lock);
 
@@ -559,7 +585,9 @@
     if (!endpt) {
         return -1;
     }
+
     ret = nc_server_ssh_set_auth_timeout(auth_timeout, endpt->opts.ssh);
+
     /* UNLOCK */
     nc_server_ch_client_unlock(client);
 
