The function that handles jumping to an arbitrary statement sets the sender's position to "wit" internally, which breaks internal pair data. This is the actual cause of the elusive "clicking the shout buttons breaks pairing" bug.
Suggested fix: Don't set the user's position at all. I don't know why we do this, as none of the following operations require it.