I updated my previous post to make it clearer.

Following up again: can someone please test the following for me on Undernet?

1) User A, connects to Undernet, joins #channel, sets channel key to 1234.
2) User B, connects to Undernet, joins #channel, receives numeric 324 +k * to indicate hidden key, as user B is not an op.
3) User A changes channel key to abcd.
4) User B receives numeric 324 +k abcd, even though they are not an op.
5) User B isues MODE, receives numeric 324 +k * to indicate hidden key.

You should test this with two copies of mIRC, one for User A and another for User B, to prevent mIRC's channel key caching from being used.

Am I making a mistake somewhere?