     override protected function item_mouseDownHandler(event:MouseEvent):void
     {
         super.item_mouseDownHandler(event);
-        userProposedSelectedIndex = selectedIndex;
-        closeDropDown(true);
+        if (!isTouchInteractionMode)
+	    {
+            userProposedSelectedIndex = selectedIndex;
+            closeDropDown(true);
+        }
     }
             
     /**

import flash.geom.Point;

import mx.collections.IList;
import mx.core.mx_internal;
import mx.events.CollectionEvent;
import mx.events.FlexEvent;


            return false;
    }
        
	//----------------------------------
	//  closeDropDownOnResize
	//----------------------------------

    /**
     *  @private
     *
     *  cached value: getStyle("interactionMode") == InteractionMode.TOUCH
     */
    private var isTouchInteractionMode:Boolean = false;

    /**
     *  @private
     *
     *  do not know what default value for closeDropDownOnResize will be until styles have been applied,
     *  but user may set property before that. this flag indicates whether property has been explicitly set,
     *  and so will not need to be determined from css when stylesInitialized() or styleChanged() is called.
     */
    private var isCloseDropDownOnResizeExplicitlySet:Boolean = false;

    /**
     *  @private
     */
    protected var _closeDropDownOnResize:Boolean = true;
	
    [Inspectable(category="General", enumeration="true,false", defaultValue="true")]
	
    /**
     *  When <code>true</code>, resizing the system manager
     *  closes the drop down.
     *  For mobile applications, this property is set
 	 *  to <code>false</code> so that the drop down stays open when the
     *  page orientation changes.
     *
 	 *  @default true
     *
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4.12
     */
    public function get closeDropDownOnResize():Boolean
	{
        return _closeDropDownOnResize;
    }

    /**
     *  @private
     */
    public function set closeDropDownOnResize(value:Boolean):void
	{
        setCloseDropDownOnResize(value, true);
    }
		
    /**
     *  @private
     */
    private function setCloseDropDownOnResize(value:Boolean, explicitlySet:Boolean):void
	{
        _closeDropDownOnResize = value;
        isCloseDropDownOnResizeExplicitlySet ||= explicitlySet;
        if (dropDownController)
            dropDownController.closeOnResize = _closeDropDownOnResize;
	}        

	//----------------------------------
    //  userProposedSelectedIndex
    //----------------------------------

