 	/**
 	 *  @private
 	 */
-    private static var AFFECTED_PROPERTIES:Array = [ "parent", "elementHost", "index" ];
+    private static var AFFECTED_PROPERTIES:Array = [ "parent", "index" ];
 
 	//--------------------------------------------------------------------------
 	//

	override protected function getValueFromTarget(target:Object,
												   property:String):*
	{
	    var hasParent:Boolean;
        try {
            target.parent;
            hasParent = true;
        } catch (e:Error) {
            hasParent = false;
        }
        var container:* = (hasParent ? target.parent : target.elementHost);
        if (property == "index")
            return container ? 
                (hasParent ? container.getChildIndex(target) : container.getItemIndex(target)) : 0;
		
		return super.getValueFromTarget(target, property);
	}

												   value:*,
												   props:Object):void
	{
        if (property == "parent" && value)
        {
            if (target.parent == null)
            {
                // TODO : workaround for current situation of mis-match between
                // Group having 'item's and Flex3 components having 'parent's
                if (value is Group)
                    value.addItemAt(target, Math.min(props.index, 
                        value.numItems));
                else
                    value.addChildAt(target, Math.min(props.index, 
                        value.numChildren));
            }
        }
		
		// Ignore index - it's applied along with parent
	}
