diff --git a/dap_stream_ch_chain.c b/dap_stream_ch_chain.c
index ef7bcc9df9e9b68cd43475579c7e48c0129b1e55..2bbfdfe7fb7e851bdd2b427a91ea08966f9ffb18 100644
--- a/dap_stream_ch_chain.c
+++ b/dap_stream_ch_chain.c
@@ -550,10 +550,6 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg)
         //dap_list_t *l_list = l_ch_chain->request_global_db_trs; //dap_list_last( l_ch_chain->request_global_db_trs );
         bool l_is_stop = true; //l_list ? false : true;
         while(l_obj) {
-            //log_it(L_DEBUG, "l_list = %X", l_list);
-            //size_t len = dap_list_length( l_list );
-            //log_it( L_DEBUG,"len = dap_list_length(l_list ); = %u", len );
-            //log_it( L_DEBUG,"l_list->data = %p", l_list->data );
 
             size_t l_items_total = dap_db_log_list_get_count(l_db_list);
             size_t l_items_rest = dap_db_log_list_get_count_rest(l_db_list);
@@ -658,7 +654,7 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg)
         dap_chain_t * l_chain = l_ch_chain->request_atom_iter->chain;
         */
 
-        dap_chain_atom_item_t * l_atom_item = NULL, *l_atom_item_tmp = NULL, *l_chains_lasts_new = NULL;
+        dap_chain_atom_item_t * l_atom_item = NULL, *l_atom_item_tmp = NULL;//, *l_chains_lasts_new = NULL;
         if(l_ch_chain->request_atoms_lasts == NULL) { // All chains synced
             dap_stream_ch_chain_sync_request_t l_request = { { 0 } };
             uint8_t l_send_pkt_type = l_ch_chain->state == CHAIN_STATE_SYNC_CHAINS ?
@@ -674,7 +670,7 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg)
             if(l_ch_chain->callback_notify_packet_out)
                 l_ch_chain->callback_notify_packet_out(l_ch_chain, l_send_pkt_type, NULL, 0, l_ch_chain->callback_notify_arg);
         }
-        // Process all chains lasts
+        // Process one chain from l_ch_chain->request_atoms_lasts
         HASH_ITER(hh,l_ch_chain->request_atoms_lasts, l_atom_item, l_atom_item_tmp)
         {
             dap_chain_atom_item_t * l_atom_item_proc = NULL;
@@ -715,21 +711,25 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg)
                         l_link_item = DAP_NEW_Z(dap_chain_atom_item_t);
                         l_link_item->atom = l_links[i];// do not use memory cause it will be deleted
                         memcpy(&l_link_item->atom_hash, &l_link_hash, sizeof(l_link_hash));
-                        HASH_ADD(hh, l_chains_lasts_new, atom_hash, sizeof(l_link_hash), l_link_item);
+                        //HASH_ADD(hh, l_chains_lasts_new, atom_hash, sizeof(l_link_hash), l_link_item);
+                        HASH_ADD(hh, l_ch_chain->request_atoms_lasts, atom_hash, sizeof(l_link_hash), l_link_item);
                     }
                     //else
                     //    DAP_DELETE(l_links[i]);
                 }
                 DAP_DELETE(l_links);
-
+                HASH_DEL(l_ch_chain->request_atoms_lasts, l_atom_item);
+                break;
+            }
+            else{
+                HASH_DEL(l_ch_chain->request_atoms_lasts, l_atom_item);
             }
-            HASH_DEL(l_ch_chain->request_atoms_lasts, l_atom_item);
         }
-        assert(l_ch_chain->request_atoms_lasts == NULL);
-        l_ch_chain->request_atoms_lasts = l_chains_lasts_new;
-
+        //assert(l_ch_chain->request_atoms_lasts == NULL);
+        //l_ch_chain->request_atoms_lasts = l_chains_lasts_new;
     }
         break;
+
     }
 
     if(l_ch_chain->state == CHAIN_STATE_SYNC_ALL) {