                 addChild(ms);
                 this.mask = ms;
             }
-            //trace('applyMask [2] ', this.lzwidth, this.lzheight, owner);
-            ms.scaleX = this.lzwidth;
-            ms.scaleY = this.lzheight;
-        }
+        }
+        this.drawMask();
     }
 
     public function removeMask():void {
         if (this.mask != null) {
             this.removeChild(this.masksprite);
             this.mask = null;
+            this.masksprite = null;
         }
     }
 

        if (this.borderWidth) {
            var colorobj = LzColorUtils.inttocolorobj(borderColor);
            context.beginFill(colorobj.color, alpha);
            var offset = this.padding + this.borderWidth;
            LzKernelUtils.rect(context, 0 - offset, 0 - offset, this.lzwidth + (offset * 2), this.lzheight + (offset * 2), this.cornerradius);
            context.endFill();
        }
        if (bgcolor != null) {
            context.beginFill(this.bgcolor, alpha);
            LzKernelUtils.rect(context, 0 - this.padding, 0 - this.padding, this.lzwidth + (this.padding * 2), this.lzheight + (this.padding * 2), this.cornerradius);
            context.endFill();
        }
    }

    private var _frame:int = 1;

        var ms:Sprite = this.masksprite;
        if (ms == null) {
            ms = new Sprite();
            addChild(ms);
            this.mask = ms;
            this.masksprite = ms;
