diff --git a/dap-sdk/net/core/dap_events_socket.c b/dap-sdk/net/core/dap_events_socket.c
index 6c65684a56cd382083cc9dd6645f78d127b89793..dbf620df7be8ad8f5d3fda0b3367e3275f90fbd2 100644
--- a/dap-sdk/net/core/dap_events_socket.c
+++ b/dap-sdk/net/core/dap_events_socket.c
@@ -743,7 +743,8 @@ bool dap_events_socket_check_unsafe(dap_worker_t * a_worker,dap_events_socket_t
  */
 void dap_events_socket_remove_and_delete_mt(dap_worker_t * a_w,  dap_events_socket_t *a_es )
 {
-    dap_events_socket_queue_ptr_send( a_w->queue_es_delete, a_es );
+    if(a_w)
+        dap_events_socket_queue_ptr_send( a_w->queue_es_delete, a_es );
 }
 
 /**
diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
index 7d1361e629d24baf58b300e3c9d236f4930c7a14..3c4c0bdda9b42dd73d161942766be269dd43ebcb 100644
--- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
+++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
@@ -597,6 +597,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg)
                     l_client->ch = a_ch;
                     l_client->stream_worker = a_ch->stream_worker;
                     l_client->ts_created = time(NULL);
+                    l_client->session_id = a_ch->stream->session->id;
                     l_srv->callback_client_success(l_srv, l_success->hdr.usage_id,  l_client, l_success, l_success_size );
                     //l_success->hdr.net_id, l_success->hdr.srv_uid, l_success->hdr.usage_id
                 }
diff --git a/modules/service/vpn/dap_chain_net_vpn_client_tun.c b/modules/service/vpn/dap_chain_net_vpn_client_tun.c
index 4c117f905baac62d13705094d8775a3f111f6473..f0b93b17376c09aa59071f2f63a523d47c34901c 100644
--- a/modules/service/vpn/dap_chain_net_vpn_client_tun.c
+++ b/modules/service/vpn/dap_chain_net_vpn_client_tun.c
@@ -418,12 +418,12 @@ int dap_chain_net_vpn_client_tun_create(const char *a_ipv4_addr_str, const char
             .delete_callback = m_client_tun_delete
     };
 
-    s_tun_events_socket = dap_events_socket_wrap_no_add(NULL, s_fd_tun, &l_s_callbacks);
+    s_tun_events_socket = dap_events_socket_wrap_no_add(dap_events_get_default(), s_fd_tun, &l_s_callbacks);
     s_tun_events_socket->type = DESCRIPTOR_TYPE_FILE;
     dap_worker_add_events_socket_auto(s_tun_events_socket);
     s_tun_events_socket->_inheritor = NULL;
 
-    return 0;
+    //return 0;
 
     //m_tunDeviceName = dev;
     //m_tunSocket = fd;
@@ -432,10 +432,12 @@ int dap_chain_net_vpn_client_tun_create(const char *a_ipv4_addr_str, const char
 
 int dap_chain_net_vpn_client_tun_delete(void)
 {
-    pthread_mutex_lock(&s_clients_mutex);
-    dap_events_socket_remove_and_delete_mt(s_tun_events_socket->worker, s_tun_events_socket);
-    s_tun_events_socket = NULL;
-    pthread_mutex_unlock(&s_clients_mutex);
+    if(s_tun_events_socket) {
+        pthread_mutex_lock(&s_clients_mutex);
+        dap_events_socket_remove_and_delete_mt(s_tun_events_socket->worker, s_tun_events_socket);
+        s_tun_events_socket = NULL;
+        pthread_mutex_unlock(&s_clients_mutex);
+    }
 
     // restore previous routing
     if(!s_conn_name || !s_last_used_connection_name)