The problem seems to be between TextEditor>>correctFrom:to:with: and Parser>>substituteWord:wordInterval:offset:
The TextEditor isn't using well the selection offset to calculate the replacement, and the parser is sending an interval that's not the one that the Editor must replace.
I think the right place to put this is the Editor, but behind another message like replaceInSelectionFrom:to:with:
What do you think?
Guille
http://code.google.com/p/pharo/issues/detail?id=3070
Cheers!
Guille