Thank you for response. I think I see problem. RID set manually to not zero (and channels names not messed up): >>> From 10722 to 10762: >>> --------------------------------------- >>> GetByChannelID: S4.0W-4369-1-1 0 0 >>> sid = 1 >>> GetByChannelID: S4.0W-0-110762-1 0 0 >>> sid = 1 >> -------------------- Same case (10722->10762) with RID=0: >> GetByChannelID: S4.0W-4369-1-1 0 0 >> sid = 1 >> channel->Sid() = 1 >> channel->Nid() = 4369 >> channel->Tid() = 1 >> channel->Transponder() = 110722 >> channel->GetChannelID() = S4.0W-4369-1-1 Transponder value is wrong. It must be 110762. Or isn't? And in first entry each channels printed out 2 times (with and without transponder frequency). With RID=0 second printouts are skipped. Sorry, I have only wery basic knowledge of C and can't understand most of complex sources. Regards, SK