 				}
 			}
 			
+			// next step: compile escaped operators
+			for (i = 0; i < tokens.length - 1; i++)
+			{
+				token = tokens[i];
+				if (token == OPERATOR_ESCAPE && operators[tokens[i + 1]] is Function)
+				{
+					token = tokens[i + 1];
+					tokens.splice(i, 2, new CompiledConstant(OPERATOR_ESCAPE + token, operators[token]));
+				}
+			}
+			
 			// next step: handle operators "..[]{}()"
 			compileBracketsAndProperties(tokens);
 

			const TRUE_INDEX:int = 1;
			const FALSE_INDEX:int = 2;
			const BRANCH_LOOKUP:Dictionary = new Dictionary();
			BRANCH_LOOKUP[constants[OPERATOR_PREFIX + '?:' + OPERATOR_SUFFIX]] = true;
			BRANCH_LOOKUP[constants[OPERATOR_PREFIX + '&&' + OPERATOR_SUFFIX]] = true;
			BRANCH_LOOKUP[constants[OPERATOR_PREFIX + '||' + OPERATOR_SUFFIX]] = false;
			const ASSIGN_OP_LOOKUP:Object = new Dictionary();
			for each (var assigOp:Function in assignmentOperators)
				ASSIGN_OP_LOOKUP[assigOp] = true;

			if (operatorName == '#')
				return new CompiledFunctionCall(compiledParams[0], null);
			*/
			operatorName = OPERATOR_ESCAPE + operatorName;
			return compileFunctionCall(new CompiledConstant(operatorName, constants[operatorName]), compiledParams);
		}

