Each of these has an event that can be set to call a function that gets sent a reference to the object that had the event.
Now, the event fires off when the value of the register is set. Not changed, set. If the value is 23, and something sets the value to 23, the event fires off. Yes, there is a valid reason for this.
The problem is that the functions called by these events may want to set the value of the object to something else, which would cause the event to fire again(as far as I understand it), and thus potentially cause a stack overflow.
So, my thoughts thus far are: a) disable the event handler temporarily while dealing with the event, or b) have an alternate way of setting the value.
And, of course, in the course of writing this post, I have the solution... simply send a reference to the member containing the value to the function called by the event. That way, the event has a specific way to change the value that doesn't fire off the event.
Problem solved. Thanks for your help.