 		private static function decodeString(encodedString:String):String
 		{
 			// remove quotes
+			var quote:String = encodedString.charAt(0);
 			var input:String = encodedString.substr(1, encodedString.length - 2);
+			input = input.split(quote + quote).join(quote); // handle doubled quote escape sequences
 			var output:String = "";
 			var begin:int = 0;
 			while (true)

			unaryOperators = new Object();
			impureFunctions = new Object();
			
			// add cast functions
			functions['isNaN'] = isNaN;
			functions['isFinite'] = isFinite;
			functions['typeof'] = function(value:*):* { return typeof(value); };
			functions['Number'] = MathLib.toNumber;

			// branching
			operators["?"] = true;
			operators[":"] = true;
			operators["?:"] = functions['iif'];
			// assignment
			//operators["="] = true; 

