 		
 		public function CanvasButton():void {
 			super();
+			
+			
 		}
+		
+		private var _childrenCreated:Boolean = false;
 		
 		override protected function createChildren():void {
 			super.createChildren();
 			
 			//create our canvas and add it to the display list
 			canvas = new Canvas();
-			addChild(canvas);
+			super.addChild(canvas);
 			
 			//if child components have been specified in MXML then we need 
 			//to add them all now
 			createComponents();
+			
+			mouseChildren = true;
+			
+			_childrenCreated = true;	
 		}
 		
 		

		 * the childDescriptors property with UIComponentDescriptor objects. These are used to create 
		 * the child components that are set in MXML.
		 */
		public function set childDescriptors(value:Array):void {
			_childDescriptors = value;
			
			// I don't know if createChildren can ever be called before the childDescriptors are set,
			// I doubt it, but just in case we see if canvas has been created and set the children if so
			if(canvas) 
				createComponents();
		}
		
		/**

	import mx.core.UIComponent;
	import mx.core.UIComponentDescriptor;
	import mx.core.mx_internal;
	import mx.managers.IFocusManagerContainer;
	import mx.core.IRawChildrenContainer;
	import mx.core.IDataRenderer;
	import flash.display.DisplayObject;
	
	use namespace mx_internal;

