          * @param String t: the string to which to set the text
          */
         public function setText ( t:String ):void {
-            //this.textfield.cacheAsBitmap = false;
             this.text = t;
-            if (this.html) {
-                var df:TextFormat = this.textfield.defaultTextFormat;
+
+            var tfield:TextField = this.textfield;
+            if (! this.html) {
+                tfield.text = t;
+            } else if (tfield.styleSheet == null) {
+                var df:TextFormat = tfield.defaultTextFormat;
                 // reset textformat to workaround flash player bug (FP-77)
-                this.textfield.defaultTextFormat = df;
-                this.textfield.htmlText = t;
+                tfield.defaultTextFormat = df;
+                tfield.htmlText = t;
             } else {
-                this.textfield.text = t;
+                // you can't set defaultTextFormat if a style sheet is applied
+                tfield.htmlText = t;
             }
 
             if (this.resize && (this.multiline == false)) {
                 // single line resizable fields adjust their width to match the text
                 var w:Number = this.getTextWidth();
-                //Debug.write('lztextsprite resize setwidth ', w, this.lzheight );
                 if (w != this.lzwidth) {
                     this.setWidth(w);
                 }

        import flash.geom.Point;
        import flash.net.URLRequest;
        import flash.text.AntiAliasType;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;

            tf.color = this.textcolor;

            // If there is no font found, assume a device font
            tfield.embedFonts = (this.font != null);

            tf.bold = (this.fontstyle == "bold" || this.fontstyle =="bolditalic");
            tf.italic = (this.fontstyle == "italic" || this.fontstyle =="bolditalic");
