diff --git a/dap_chain_node_cli_cmd.c b/dap_chain_node_cli_cmd.c
index a6c8110de21afdb0eab122feba28b628db45f87f..41d5018ee9683b350ef9d46803a8dd5f3f2b5a0e 100644
--- a/dap_chain_node_cli_cmd.c
+++ b/dap_chain_node_cli_cmd.c
@@ -969,7 +969,7 @@ int com_node(int a_argc, char ** a_argv, char **a_str_reply)
                 return -1;
             }
             // wait connected
-            int timeout_ms = 100; //5 sec = 5000 ms
+            int timeout_ms = 5000; //5 sec = 5000 ms
             res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_CONNECTED, timeout_ms);
             // select new node addr
             if(l_is_auto && res){
@@ -2076,12 +2076,23 @@ int com_mempool_proc(int argc, char ** argv, char ** a_str_reply)
             if(l_objs_size > 15) {
                 dap_string_append_printf(l_str_tmp, "...\n");
             }
-            size_t l_objs_processed = l_chain->callback_datums_pool_proc(l_chain, l_datums, l_datums_size);
+
+            size_t l_objs_processed = 0;
+            bool l_procecced[l_objs_size];
+            for(size_t i = 0; i < l_objs_size; i++) {
+                int l_is_processed = l_chain->callback_datums_pool_proc(l_chain, l_datums + i, 1); //l_datums_size
+                l_objs_processed += l_is_processed;
+                l_procecced[i] = l_is_processed;
+            }
             // Delete processed objects
             size_t l_objs_processed_tmp = (l_objs_processed > 15) ? min(l_objs_processed, 10) : l_objs_processed;
-            for(size_t i = 0; i < l_objs_processed; i++) {
-                dap_chain_global_db_gr_del(l_objs[i].key, l_gdb_group_mempool);
-                if(i < l_objs_processed_tmp) {
+            size_t l_objs_processed_cur = 0;
+            for(size_t i = 0; i < l_datums_size; i++) {
+                if(l_procecced[i]!=1)
+                    continue;
+                dap_chain_global_db_gr_del(l_objs[i].key, l_gdb_group_mempool_tmp);
+                l_objs_processed_cur++;
+                if(l_objs_processed_cur < l_objs_processed_tmp) {
                     dap_string_append_printf(l_str_tmp, "New event created, removed datum 0x%s from mempool \n",
                             l_objs[i].key);
                 }