Ok, can somebody tell me why this lockls up my mirc into an unlockable state (CTRL + Pause/break does NOT unlock mirc - I gotta task manager it)?

Code:
/moding {
  var %mode.nix = $nick(#,0,r)
  while (%mode.nix > 0) {
    if ($address($nick(#,%mode.nix,r),9) isavoice #) {
      echa $address($nick(#,%mode.nix,r),9)
      ;mode # +v $nick(#,%mode.nix,r)
      dec %mode.nix
    }
  }
}


the echa alias is a custom echoing alias that works perfectly and has for years so I KNOW that's not it. Also, the mode # +v is remmed out because I want to make sure it works BEFORE I do the mass voicing in case it doesnt work and voices everybody or something.


Those who fail history are doomed to repeat it