 			}
 			return r;
 		}
+		
+		private function parseFromString(markup:String):HTMLDocument {
+			return (new DOMParser()).parseFromString(markup, "text/html") as HTMLDocument;
+			// Firefox/Opera/IE throw errors on unsupported types
+			/*try {
+				// WebKit returns null on unsupported types
+				if ((new DOMParser()).parseFromString("", "text/html")) {
+					// text/html parsing is natively supported
+					
+				}
+			} catch (ex) {}
+			
+			if (/^\s*text\/html\s*(?:;|$)/i.test(type)) {
+				var
+				  doc = document.implementation.createHTMLDocument("")
+				;
+					if (markup.toLowerCase().indexOf('<!doctype') > -1) {
+						doc.documentElement.innerHTML = markup;
+					}
+					else {
+						doc.body.innerHTML = markup;
+					}
+				return doc;
+			} else {
+				return nativeParse.apply(this, arguments);
+			}*/
+		}
 	}
 }

			}
		}
		
		/*private function doXML(xml:XML, font:String, fontSize:int, color:uint, href:String,indent:int,underline:int):void {
			this.href = href;
			if (xml==null){
				return;
			}
			var l:String = xml.localName();
			if (l == "br"){
				var txt:String = "\n";
			}else if(xml.nodeKind()=="text"){
				txt = xml.toString().replace(/&nbsp;/g," ");
				txt = txt.replace(/ﾠ/g," ");
			}

				_htmlText = value;
				try{
					var xmllist:DOMParser = new DOMParser();
					var hd:HTMLDocument = parseFromString(value);
					
					for(var i:int=0;i<hd.body.childNodes.length;i++){
						doXML(hd.body.childNodes[i],_textFormat.font, int(_textFormat.size),int(_textFormat.color),null,int(_textFormat.indent),int(_textFormat.underline));
					}
					
					//for e(var xml:XML in xmllist){
						//doXML(xml, _defFont, _defSize, _defColor,null,_indent,_defUnderline);
					//}
				}catch (err:Error){
