We have also noted some problem with data dispatching.
We have multiple client applications which run one ScSSHClient and one ScSSHChannel (so one channel per client, direct mode). These clients send messages to server. Each message contains string value "user_id" which is the same as ScClient.UserName.
On server side in BeforeChannelConnect event we create a data structure per channel which containing the field "user_id" and we set this value to this field from ChannelInfo.ClientInfo.User.
ChannInfo.Data is set to pointer to this structure.
Sometimes in OnDataFromClient event we notice that "user_id" field in the received message is not the same as ChannelInfo.ClientInfo.User and ChannelInfo.Data.user_id, but are the same as one from another connected channel.
It looks like sometimes data that are intended for one channel are received by another one. However received data are not corrupted, so full datachunk is received by another channel.
I guess you'd like to have a test application that reproduces the problem. I'll try to make it on weekend if needed.
Thank you.