diff --git a/modules/service/stake/dap_chain_net_srv_stake_lock.c b/modules/service/stake/dap_chain_net_srv_stake_lock.c
index 1f497a38fe10d53650e91fe61f6ec3ff252df9c5..a4eaa6675376fc3c32503a85fb57f25d8e4eb60c 100644
--- a/modules/service/stake/dap_chain_net_srv_stake_lock.c
+++ b/modules/service/stake/dap_chain_net_srv_stake_lock.c
@@ -1393,7 +1393,11 @@ dap_chain_datum_t *s_stake_unlock_datum_create(dap_chain_net_t *a_net, dap_enc_k
         // coin back
         //SUBTRACT_256_256(l_fee_transfer, l_value_pack, &l_value_back);
         if(l_main_native){
-            SUBTRACT_256_256(a_value, l_value_pack, &l_value_back);
+            if (SUBTRACT_256_256(a_value, l_value_pack, &l_value_back)) {
+                dap_chain_datum_tx_delete(l_tx);
+                *result = -13;
+                return NULL;
+            }
             if(!IS_ZERO_256(l_value_back)) {
                 if (dap_chain_datum_tx_add_out_ext_item(&l_tx, &l_addr, l_value_back, a_main_ticker)!=1) {
                     dap_chain_datum_tx_delete(l_tx);