diff --git a/dap_chain_mempool.c b/dap_chain_mempool.c
index 183a68a77678a87c521372a77b99c7443de451fb..76c5530189c2dc36f5677a9e789cddc28e8ac604 100755
--- a/dap_chain_mempool.c
+++ b/dap_chain_mempool.c
@@ -317,7 +317,8 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
                 log_it(L_WARNING,"Can't add input from %s with %llu datoshi",l_in_hash_str, item->value);
             }
             l_list_used_out = l_list_tmp->next;
-            DAP_DELETE(l_list_tmp);
+            DAP_DELETE(l_list_tmp->data);
+            dap_list_free1(l_list_tmp);
             l_list_tmp = l_list_used_out;
             if ( l_value_to_items >= l_value_transfer )
                 break;
@@ -395,6 +396,7 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
         // Now produce datum
         dap_chain_datum_t *l_datum = dap_chain_datum_create(DAP_CHAIN_DATUM_TX, l_tx_new, l_tx_size);
 
+        dap_chain_datum_tx_delete(l_tx_new);
         //dap_chain_ledger_tx_add( a_chain->ledger, l_tx);
 
         l_objs[i].key = dap_chain_hash_fast_to_str_new(&l_tx_new_hash);
@@ -405,7 +407,7 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
                l_objs[i].key? l_objs[i].key :"NULL" , l_objs[i].value_len );
 
     }
-    dap_list_free(l_list_used_out);
+    dap_list_free_full(l_list_used_out, free);
     char * l_gdb_group = dap_chain_net_get_gdb_group_mempool(a_chain);
 
     //return 0;