Doing this automatically when endEditing is called prevents my current use-case where I want to keep the cursor, but enter & edit exit mode multiple times. For this particular fix, I would consider it sufficient if you simply asserted that the local cursor is present when startEditing is called, which then avoids the implict add logic. This means incorrect usages of the API are obvious, but still enables my use-case :)