My latest changes: http://jsfiddle.net/aVjyH/1/ to preserve the current behavior when <code>elem</code> is a select-multiple. The new code changes <code>elem.selectedIndex</code> only if <code>elem.type</code> is <code>"select-multiple"</code> and <code>elem.selectedIndex</code> is less than 0. The approach used in <code>get</code> doesn't work well when applying to <code>set</code> because <code>one = elem.type === "select-one" || index < 0</code> can be true even when <code>elem</code> is a select-multiple and none of its options is selected.