diff --git a/dap_chain_cs_dag.c b/dap_chain_cs_dag.c
index 01671f699093969bda3ef6862fd109377611e43c..716eef3b263fe8accc682bcf3b2e785b00ded3b0 100755
--- a/dap_chain_cs_dag.c
+++ b/dap_chain_cs_dag.c
@@ -292,7 +292,7 @@ static size_t s_chain_callback_datums_pool_proc(dap_chain_t * a_chain, dap_chain
     size_t l_datum_processed =0;
     size_t l_events_round_new_size = 0;
     // Load current events new round pool
-    dap_global_db_obj_t ** l_events_round_new = dap_chain_global_db_gr_load(l_dag->gdb_group_events_round_new, &l_events_round_new_size );
+    dap_global_db_obj_t * l_events_round_new = dap_chain_global_db_gr_load(l_dag->gdb_group_events_round_new, &l_events_round_new_size );
     // Prepare hashes
     size_t l_hashes_int_size = ( l_events_round_new_size + a_datums_count )> l_dag->datum_add_hashes_count ?
                                    l_dag->datum_add_hashes_count :
@@ -318,7 +318,7 @@ static size_t s_chain_callback_datums_pool_proc(dap_chain_t * a_chain, dap_chain
             do{
                 int l_index = rand() % (int) l_events_round_new_size;
                 dap_chain_hash_fast_t l_hash;
-                dap_chain_cs_dag_event_t * l_event = (dap_chain_cs_dag_event_t *) l_events_round_new[l_index]->value;
+                dap_chain_cs_dag_event_t * l_event = (dap_chain_cs_dag_event_t *) l_events_round_new[l_index].value;
                 size_t l_event_size = dap_chain_cs_dag_event_calc_size(l_event);
                 dap_hash_fast(l_event, l_event_size,&l_hash);
 
@@ -388,6 +388,7 @@ static size_t s_chain_callback_datums_pool_proc(dap_chain_t * a_chain, dap_chain
             }
         }
     }
+    dap_chain_global_db_objs_delete(l_events_round_new, l_events_round_new_size);
     return  l_datum_processed;
 }
 
@@ -776,21 +777,21 @@ static int s_cli_dag(int argc, char ** argv, char **a_str_reply)
             dap_string_t *l_str_ret_tmp= dap_string_new("Completing round:\n");
 
             size_t l_objs_size=0;
-            dap_global_db_obj_t ** l_objs = dap_chain_global_db_gr_load(l_dag->gdb_group_events_round_new,&l_objs_size);
+            dap_global_db_obj_t * l_objs = dap_chain_global_db_gr_load(l_dag->gdb_group_events_round_new,&l_objs_size);
 
             // Check if its ready or not
             for (size_t i = 0; i< l_objs_size; i++ ){
-                dap_chain_cs_dag_event_t * l_event = (dap_chain_cs_dag_event_t*) l_objs[i]->value;
-                size_t l_event_size = l_objs[i]->value_len;
+                dap_chain_cs_dag_event_t * l_event = (dap_chain_cs_dag_event_t*) l_objs[i].value;
+                size_t l_event_size = l_objs[i].value_len;
                 int l_ret_event_verify;
                 if ( ( l_ret_event_verify = l_dag->callback_cs_verify (l_dag,l_event) ) !=0 ){// if consensus accept the event
                     dap_string_append_printf( l_str_ret_tmp,
                             "Error! Event %s is not passing consensus verification, ret code %d\n",
-                                              l_objs[i]->key, l_ret_event_verify );
+                                              l_objs[i].key, l_ret_event_verify );
                     ret = -30;
                     break;
                 }else {
-                    dap_string_append_printf( l_str_ret_tmp, "Event %s verification passed\n", l_objs[i]->key);
+                    dap_string_append_printf( l_str_ret_tmp, "Event %s verification passed\n", l_objs[i].key);
                     // If not verify only mode we add
                     if ( ! l_verify_only ){
                         dap_chain_atom_ptr_t l_new_atom = NULL; // produce deep copy of event;
@@ -800,7 +801,7 @@ static int s_cli_dag(int argc, char ** argv, char **a_str_reply)
                 }
             }
             // Cleaning up
-            dap_chain_global_db_objs_delete(l_objs);
+            dap_chain_global_db_objs_delete(l_objs, l_objs_size);
             dap_chain_node_cli_set_reply_text(a_str_reply,l_str_ret_tmp->str);
             dap_string_free(l_str_ret_tmp,false);