diff --git a/CMakeLists.txt b/CMakeLists.txt
index bbb0a5e3419f51a7bd5036da26b9706326ee0f1c..d27ed1f77512b0472aa32aa3e6477bf9df1780eb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@ project(cellframe-sdk C)
 cmake_minimum_required(VERSION 2.8)
 
 set(CMAKE_C_STANDARD 11)
-set(CELLFRAME_SDK_NATIVE_VERSION "2.5-3")
+set(CELLFRAME_SDK_NATIVE_VERSION "2.5-4")
 add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 
 set(DAPSDK_MODULES "")
diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c
index afe6ba08d91520758d256a7d840344432c7cc2b2..8f94aa9bef621e6b249edff165c5bdbd3aba99f5 100644
--- a/modules/channel/chain/dap_stream_ch_chain.c
+++ b/modules/channel/chain/dap_stream_ch_chain.c
@@ -139,7 +139,7 @@ bool s_sync_chains_callback(dap_proc_thread_t *a_thread, void *a_arg)
     l_ch_chain->request_atom_iter = l_iter;
     l_lasts = l_chain->callback_atom_iter_get_lasts(l_iter, &l_lasts_count, &l_lasts_sizes);
     if(l_lasts&& l_lasts_sizes) {
-        for(size_t i = 0; i < l_lasts_count; i++) {
+        for(size_t i = l_lasts_count - 1; i >= 0; i--) {
             dap_chain_atom_item_t * l_item = NULL;
             dap_chain_hash_fast_t l_atom_hash;
             dap_hash_fast(l_lasts[i], l_lasts_sizes[i],
@@ -250,7 +250,7 @@ bool s_chain_pkt_callback(dap_proc_thread_t *a_thread, void *a_arg)
         dap_hash_fast(l_atom_copy, l_atom_copy_size, &l_atom_hash);
         dap_chain_atom_iter_t *l_atom_iter = l_chain->callback_atom_iter_create(l_chain);
         size_t l_atom_size =0;
-        if ( l_chain->callback_atom_find_by_hash(l_atom_iter, &l_atom_hash, &l_atom_size) != NULL ) {
+        if ( l_chain->callback_atom_find_by_hash(l_atom_iter, &l_atom_hash, &l_atom_size) == NULL ) {
             dap_chain_atom_verify_res_t l_atom_add_res = l_chain->callback_atom_add(l_chain, l_atom_copy, l_atom_copy_size);
             if(l_atom_add_res == ATOM_ACCEPT && dap_chain_has_file_store(l_chain)) {
                 // append to file
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index d18a5063bafbf8177e08607c1cefbce9ebf4ba3b..8d2e991ab4363a84cdf209676704c84cae24f4ee 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -512,13 +512,13 @@ static int s_net_states_proc(dap_chain_net_t * l_net)
                 l_res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_SYNCED, timeout_ms);
                 switch (l_res) {
                 case -1:
-                    log_it(L_WARNING,"Timeout with link sync");
+                    log_it(L_WARNING, "Timeout with reverse link sync");
                     break;
                 case 0:
-                    log_it(L_INFO, "Node sync completed");
+                    log_it(L_INFO, "Node reverse sync completed");
                     break;
                 default:
-                    log_it(L_INFO, "Node sync error %d",l_res);
+                    log_it(L_INFO, "Node reverse sync error %d",l_res);
                 }
                 l_tmp = dap_list_next(l_tmp);
             }
diff --git a/modules/net/dap_chain_node_client.c b/modules/net/dap_chain_node_client.c
index 11a8c3a0dd8f9455586d1cd22e0bf472db7b70ad..bb92eab2c791bdf1a6d25cffc90ea096da3807b2 100644
--- a/modules/net/dap_chain_node_client.c
+++ b/modules/net/dap_chain_node_client.c
@@ -127,6 +127,7 @@ static void s_stage_status_error_callback(dap_client_t *a_client, void *a_arg)
         SetEvent( l_node_client->wait_cond );
 #endif
         pthread_mutex_unlock(&l_node_client->wait_mutex);
+        return;
     }
 
     if(l_node_client && l_node_client->keep_connection &&
diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c
index b037fae22ef77d4b88de6e692b301de1b55dd404..b45dc45248ac63a34af746a7394cba103e454532 100644
--- a/modules/type/dag/dap_chain_cs_dag.c
+++ b/modules/type/dag/dap_chain_cs_dag.c
@@ -251,12 +251,12 @@ static int s_dap_chain_add_atom_to_ledger(dap_chain_cs_dag_t * a_dag, dap_ledger
   switch (l_datum->header.type_id) {
     case DAP_CHAIN_DATUM_TOKEN_DECL: {
       dap_chain_datum_token_t *l_token = (dap_chain_datum_token_t*) l_datum->data;
-      dap_chain_ledger_token_add(a_ledger, l_token, l_datum->header.data_size);
+      return dap_chain_ledger_token_add(a_ledger, l_token, l_datum->header.data_size);
     }
       break;
     case DAP_CHAIN_DATUM_TOKEN_EMISSION: {
       dap_chain_datum_token_emission_t *l_token_emission = (dap_chain_datum_token_emission_t*) l_datum->data;
-      dap_chain_ledger_token_emission_add(a_ledger, l_token_emission, l_datum->header.data_size);
+      return dap_chain_ledger_token_emission_add(a_ledger, l_token_emission, l_datum->header.data_size);
     }
       break;
     case DAP_CHAIN_DATUM_TX: {
@@ -289,10 +289,10 @@ static int s_dap_chain_add_atom_to_events_table(dap_chain_cs_dag_t * a_dag, dap_
         dap_chain_hash_fast_to_str(&a_event_item->hash,l_buf_hash,sizeof(l_buf_hash)-1);
         log_it(L_DEBUG,"Dag event %s checked, add it to ledger", l_buf_hash);
         res = s_dap_chain_add_atom_to_ledger(a_dag, a_ledger, a_event_item);
-
+        //All correct, no matter for result
         HASH_ADD(hh, PVT(a_dag)->events,hash,sizeof (a_event_item->hash), a_event_item);
         s_dag_events_lasts_process_new_last_event(a_dag, a_event_item);
-    }else{
+    } else {
         char l_buf_hash[128];
         dap_chain_hash_fast_to_str(&a_event_item->hash,l_buf_hash,sizeof(l_buf_hash)-1);
         log_it(L_WARNING,"Dag event %s check failed: code %d", l_buf_hash,  res );
@@ -693,7 +693,7 @@ int dap_chain_cs_dag_event_verify_hashes_with_treshold(dap_chain_cs_dag_t * a_da
     bool l_is_events_all_hashes = true;
     bool l_is_events_main_hashes = true;
 
-    if(a_event->header.hash_count == 0){
+    if (a_event->header.hash_count == 0) {
         //looks like an alternative genesis event
         return DAP_THRESHOLD_CONFLICTING;
     }