 		if (scrollToSelection && spinnerLayout)
 		{
 			scrollToSelection = false;
-			scroller.snapElement(spinnerLayout.getUnwrappedElementIndex(selectedIndex), false);
+			scroller.snapElement(spinnerLayout.getClosestUnwrappedElementIndex(selectedIndex), false);
 			
 			removeEventListener(FlexEvent.UPDATE_COMPLETE, updateCompleteHandler);
 		}

		if (scroller && spinnerLayout)
		{
			var animate:Animate = scroller.snapElement(
				spinnerLayout.getUnwrappedElementIndex(index), true);
			if (animate)
            {
				animate.addEventListener(EffectEvent.EFFECT_END, animateToIndex_effectEndHandler);

		// SnapElement requires a layout pass in order to properly center the selection
		// The listener for updateComplete calls commitSelection
		if (initialized && spinnerLayout)
			scroller.snapElement(spinnerLayout.getClosestUnwrappedElementIndex(selectedIndex), false);
		
		return result;
	}
