Simon, it looks like your STUFF command is not quite right.
With your example, if you insert then backspace the inserted text out then insert again, it will keep shifting to the left.
STUFF is inserting at the value of selstart, i.e. if selstart was at 5 then the STUFF command will insert before 5.
existing text: 12345
insert "text"
result: 1234text5
and so on.
Try modifying the STUFF command like this:
This.Parent.editbox.value=Stuff(This.Parent.editbox.Value,This.Parent.editBox.selStart+1,0,"test")
Hope this helps,
- Craig
"If you're not prepared to be wrong, you will never come up with anything original."
- Sir Ken Robinson