In IE9 if you set the value during a selectionchange event then the cursor jumps to the start of the textarea and attempts to move it (via createTextRange) are ignored. Curiously, doing textarea.select() _does_ select the contents, but changing the selection using createTextRange after calling .select() moves the cursor back to the start.