diff --git a/CMakeLists.txt b/CMakeLists.txt
index b754dc7b39d356ed9edd29f0d6eb89281162cc2e..532b88b29ee1886559b374466fbbe17c89d3f0be 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.6-14")
+set(CELLFRAME_SDK_NATIVE_VERSION "2.6-15")
 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 f96ad62b397fa91d24ef8df1398a7132462ec3e8..0a6d53a743aca82a316b4bbbc01ce682074672e3 100644
--- a/modules/chain/dap_chain_ledger.c
+++ b/modules/chain/dap_chain_ledger.c
@@ -365,7 +365,7 @@ 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);
+            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);
@@ -1260,7 +1260,7 @@ int dap_chain_ledger_balance_cache_update(dap_ledger_t *a_ledger, dap_ledger_wal
  *
  * 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");
@@ -1550,8 +1550,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx)
             DAP_DELETE(l_tx_cache);
         }
         DAP_DELETE(l_gdb_group);
-
-        s_treshold_txs_proc(a_ledger);
+        if (!a_from_threshold)
+            s_treshold_txs_proc(a_ledger);
         ret = 1;
     }
 FIN:
@@ -1562,7 +1562,7 @@ FIN:
 int dap_chain_ledger_tx_load(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx)
 {
     if (PVT(a_ledger)->last_tx.found && PVT(a_ledger)->last_thres_tx.found) {
-        return dap_chain_ledger_tx_add(a_ledger, a_tx);
+        return dap_chain_ledger_tx_add(a_ledger, a_tx, false);
     } else {
         dap_chain_hash_fast_t l_tx_hash = {};
         dap_hash_fast(a_tx, dap_chain_datum_tx_get_size(a_tx), &l_tx_hash);
diff --git a/modules/chain/include/dap_chain_ledger.h b/modules/chain/include/dap_chain_ledger.h
index 252ea1547883f8b690df2645d8a7d79ad676bdfe..81f182638b8cdf3581775219eb4f94f0949c8f77 100644
--- a/modules/chain/include/dap_chain_ledger.h
+++ b/modules/chain/include/dap_chain_ledger.h
@@ -97,7 +97,7 @@ DAP_STATIC_INLINE char *dap_chain_ledger_get_gdb_group(dap_ledger_t *a_ledger, c
  *
  * 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_load(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx);