diff --git a/modules/net/srv/include/dap_chain_net_srv_common.h b/modules/net/srv/include/dap_chain_net_srv_common.h
index 9b2198c7d01080b89366ada027faf5714551c3d7..69238b2983104a4ed7f1a5aa8eabd1064308ebb8 100755
--- a/modules/net/srv/include/dap_chain_net_srv_common.h
+++ b/modules/net/srv/include/dap_chain_net_srv_common.h
@@ -95,8 +95,10 @@ typedef struct dap_chain_net_srv_price
 #define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_CHECK_RESPONSE                0x41
 
 #define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_UNDEFINED                  0x00000000
+
 #define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_SERVICE_NOT_FOUND          0x00000100
 #define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_SERVICE_CH_NOT_FOUND       0x00000101
+#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_SERVICE_IN_CLIENT_MODE     0x00000102
 #define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_NETWORK_NOT_FOUND          0x00000200
 #define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_NETWORK_NO_LEDGER          0x00000201
 #define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_USAGE_CANT_ADD             0x00000300
diff --git a/modules/service/vpn/dap_chain_net_srv_vpn.c b/modules/service/vpn/dap_chain_net_srv_vpn.c
index 5b8646345e2dd84cd6c2dd18e65e7415650c8167..00736ad0d9ce4f77edfcab6e9599f7289cb3b58c 100644
--- a/modules/service/vpn/dap_chain_net_srv_vpn.c
+++ b/modules/service/vpn/dap_chain_net_srv_vpn.c
@@ -143,13 +143,13 @@ pthread_cond_t * s_tun_sockets_cond_started = NULL;
 uint32_t s_tun_sockets_count = 0;
 bool s_debug_more = false;
 
-static usage_client_t * s_clients;
-static dap_chain_net_srv_ch_vpn_t * s_ch_vpn_addrs ;
+static usage_client_t * s_clients = NULL;
+static dap_chain_net_srv_ch_vpn_t * s_ch_vpn_addrs  = NULL;
 static pthread_rwlock_t s_clients_rwlock = PTHREAD_RWLOCK_INITIALIZER;
 
 static pthread_mutex_t s_sf_socks_mutex;
 static pthread_cond_t s_sf_socks_cond;
-static vpn_local_network_t *s_raw_server;
+static vpn_local_network_t *s_raw_server = NULL;
 static pthread_rwlock_t s_raw_server_rwlock = PTHREAD_RWLOCK_INITIALIZER;
 
 // Service callbacks
@@ -1041,11 +1041,13 @@ static void s_ch_vpn_delete(dap_stream_ch_t* a_ch, void* arg)
         s_tun_send_msg_ip_unassigned_all(l_ch_vpn, l_ch_vpn->addr_ipv4); // Signal all the workers that we're switching off
 
         pthread_rwlock_wrlock(& s_raw_server_rwlock);
-        if ( s_raw_server->ipv4_lease_last.s_addr == l_ch_vpn->addr_ipv4.s_addr ){
-            s_raw_server->ipv4_lease_last.s_addr = ntohl( ntohl(s_raw_server->ipv4_lease_last.s_addr)-1 );
+        if( s_raw_server){
+            if ( s_raw_server->ipv4_lease_last.s_addr == l_ch_vpn->addr_ipv4.s_addr ){
+                s_raw_server->ipv4_lease_last.s_addr = ntohl( ntohl(s_raw_server->ipv4_lease_last.s_addr)-1 );
+            }
+            else
+                l_is_unleased = true;
         }
-        else
-            l_is_unleased = true;
         pthread_rwlock_unlock(& s_raw_server_rwlock);
     }
     pthread_rwlock_wrlock(&s_clients_rwlock);
@@ -1201,6 +1203,9 @@ static void s_ch_packet_in_vpn_address_request(dap_stream_ch_t* a_ch, dap_chain_
     dap_chain_net_srv_vpn_t * l_srv_vpn =(dap_chain_net_srv_vpn_t *) a_usage->service->_inhertor;
     dap_chain_net_srv_stream_session_t * l_srv_session= DAP_CHAIN_NET_SRV_STREAM_SESSION(l_ch_vpn->ch->stream->session);
 
+    if (! s_raw_server)
+        return;
+
     if ( l_ch_vpn->addr_ipv4.s_addr ){
         log_it(L_WARNING,"We already have ip address leased to us");
         ch_vpn_pkt_t *pkt_out = (ch_vpn_pkt_t*) calloc(1, sizeof(pkt_out->header));
@@ -1376,6 +1381,7 @@ void s_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg)
         return;
     }
 
+
     // TODO move address leasing to this structure
     //dap_chain_net_srv_vpn_t * l_srv_vpn =(dap_chain_net_srv_vpn_t *) l_usage->service->_inhertor;
 
@@ -1410,7 +1416,11 @@ void s_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg)
             // for server
             case VPN_PACKET_OP_CODE_VPN_ADDR_REQUEST: { // Client request after L3 connection the new IP address
                 log_it(L_INFO, "Received address request  ");
-                s_ch_packet_in_vpn_address_request(a_ch, l_usage);
+                if(s_raw_server){
+                    s_ch_packet_in_vpn_address_request(a_ch, l_usage);
+                }else{
+                    dap_stream_ch_pkt_write_unsafe( l_usage->client->ch , DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_SERVICE_IN_CLIENT_MODE  , NULL, 0 );
+                }
                 l_srv_session->stats.bytes_recv += l_vpn_pkt_size;
                 l_srv_session->stats.packets_recv++;
             } break;