diff --git a/CMakeLists.txt b/CMakeLists.txt
index e40ff7e0690dff2b9c7b1e4ced6311cb7287913e..bc0a64ab0b05374d01d613e922e8aa5f622857a9 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-26")
+set(CELLFRAME_SDK_NATIVE_VERSION "2.5-27")
 add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 
 set(DAPSDK_MODULES "")
diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c
index aca8f087bca238c7ce5ad50cf5ea17966d71d042..a1e40bde90d175d75ced6df8cbb4d6d56df4a348 100644
--- a/modules/chain/dap_chain_ledger.c
+++ b/modules/chain/dap_chain_ledger.c
@@ -344,8 +344,8 @@ static void s_treshold_txs_proc( dap_ledger_t *a_ledger)
         l_success = false;
         dap_chain_ledger_tx_item_t *l_tx_item, *l_tx_tmp;
         HASH_ITER(hh, PVT(a_ledger)->treshold_txs, l_tx_item, l_tx_tmp) {
-            int l_res = dap_chain_ledger_tx_add(a_ledger, l_tx_item->tx);
-            if (!l_res) {
+            int l_res = dap_chain_ledger_tx_add(a_ledger, l_tx_item->tx, true);
+            if (l_res == 1) {
                 pthread_rwlock_wrlock(&PVT(a_ledger)->treshold_txs_rwlock);
                 HASH_DEL(PVT(a_ledger)->treshold_txs, l_tx_item);
                 pthread_rwlock_unlock(&PVT(a_ledger)->treshold_txs_rwlock);
@@ -1090,7 +1090,7 @@ int dap_chain_ledger_tx_add_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *
  *
  * return 1 OK, -1 error
  */
-int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx)
+int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, bool a_from_threshold)
 {
     if(!a_tx){
         log_it(L_ERROR, "NULL tx detected");
@@ -1355,7 +1355,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx)
         HASH_ADD(hh, l_ledger_priv->ledger_items, tx_hash_fast, sizeof(dap_chain_hash_fast_t), l_item_tmp); // tx_hash_fast: name of key field
         pthread_rwlock_unlock(&l_ledger_priv->ledger_rwlock);
 
-        s_treshold_txs_proc(a_ledger);
+        if (!a_from_threshold)
+            s_treshold_txs_proc(a_ledger);
         ret = 1;
     }
 FIN:
diff --git a/modules/chain/include/dap_chain_ledger.h b/modules/chain/include/dap_chain_ledger.h
index 7fe973442df58c40a14ceb658ad0d16dcb882bea..582ffe1b6b8fc0f3d82b5bf59a0d0e4231306240 100644
--- a/modules/chain/include/dap_chain_ledger.h
+++ b/modules/chain/include/dap_chain_ledger.h
@@ -82,7 +82,7 @@ static inline dap_chain_hash_fast_t* dap_chain_node_datum_tx_calc_hash(dap_chain
  *
  * return 1 OK, -1 error
  */
-int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx);
+int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, bool a_from_threshold);
 
 
 int dap_chain_ledger_tx_add_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx);
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index f73b95c2158786bdc8499dc0824f1b63753a44b3..a6b1bb9e4ba55fde45948250e1469c80974e0f4b 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -397,7 +397,7 @@ static int s_net_states_proc(dap_chain_net_t * l_net)
                             // Add other root nodes as synchronization links
                             for (int i = 0; i < MIN(s_max_links_count, l_pvt_net->seed_aliases_count); i++) {
                                 dap_chain_node_addr_t *l_link_addr = dap_chain_node_alias_find(l_net, l_pvt_net->seed_aliases[i]);
-                                if (l_link_addr->uint64 == l_own_addr) {
+                                if (!l_link_addr || l_link_addr->uint64 == l_own_addr) {
                                     continue;   // Do not link with self
                                 }
                                 dap_chain_node_info_t *l_link_node_info = dap_chain_node_info_read(l_net, l_link_addr);