tso29, thanks for the help and sorry for the delay in responding but ive been ill frown
ive tried your code, in6.16 & 6.17 it still fails to sort correctly
ill show you my full test script incase you can see anything ive done wrong at all.
Code:
 
alias connect {
  if ($sock(ircsock)) return
  sockopen ircsock $$1 $iif($2,$2,6667)
}
on *:sockopen:ircsock:{
  if ($sockerr) return 
  sockwrite -n ircsock NICK SOCK-TEST
  sockwrite -n ircsock USER MEME * * :HAHA
  sockwrite -n ircsock JOIN #achannel
}

on 1:sockread:ircsock:{
  if ($sockerr > 0) { return }
  :socketread
  sockread %ircsock
  echo -s %ircsock
  tokenize 32 %ircsock
  if ($sockbr == 0) return
  if (%ircsock == $null) %ircsock = - 
  if (353 == $2) {  
    set %chan $+(@,$5)
    nicklist $gettok($6-,1,58)
  }
  goto socketread
}
alias -l nicklist {
  if (!$window(%chan)) window -l15k0eS %chan
  var %a = $0
  while (%a) {
    aline -ln %chan $gettok($1-,%a,32)
    dec %a
  }
}

 


im wondering what this could be if you say it is sorting correctly on your client.
I have even tried to addtok the nicks and the use sorttok( ,c) to get a channel nick prefix sort order and that too sorts incorrectly.