>Wow you are fast. However that doesn't sem to fix it. I have made sure all the events / methods are actually firing and they are. It seems the cusror needs a boost like "CusrorUpdate" . But I know this isn't the first time anyone has tried this so there must be an explanation out there.
It is possible that your checkbox's controlsource is being updated _after_ your code fires. So you may set a flag somewhere that its value has changed, and then move the code into grid.valid() or ARCC, to run only if the flag is set. IOW, run it a bit later when the focus leaves the checkbox. Or move it to checkbox.valid - valid is supposed to run after the control.value is written into the controlsource.
It's been years since I had this problem, and I don't remember how I solved it, but some such behavior was the cause.
Another thought: you may unbind your checkbox, and specifically do a replace (fieldname) with this.value in .click() or some such method (interactivechange, perhaps) and then run your code.