 		private static const _statementsWithParams:Array = [
 			ST_IF, ST_FOR, ST_FOR_EACH, ST_WHILE, ST_SWITCH, ST_CATCH
 		];
+		
+		private static const _jumpStatements:Array = [ST_BREAK, ST_CONTINUE, ST_RETURN];
 		
 		/**
 		 * Used during evaluation.

										throw new Error("Incorrect number of arguments for type casting.  Expected 1.");
								}
								// special case for Class('some.qualified.ClassName')
								else if (call.evaluatedMethod === Class && call.evaluatedParams[0] is String)
									result = getDefinitionByName(call.evaluatedParams[0]);
								else // all other single-parameter type casting operations
									result = call.evaluatedMethod(call.evaluatedParams[0]);
							}
							else
							{
								// function call
								result = call.evaluatedMethod.apply(null, call.evaluatedParams);
							}
						}
						else // no compiled params means it's a variable lookup
						{
							// call.compiledMethod is a constant and call.evaluatedMethod is the method name
							symbolName = call.evaluatedMethod as String;
							// find the variable
							for (i = 0; i < allSymbolTables.length - 1; i++) // max i after loop will be length-1
								if (allSymbolTables[i] && allSymbolTables[i].hasOwnProperty(symbolName))

					{
						cfc = tokens[i - 1] as CompiledFunctionCall;
						
						if (_jumpStatements.indexOf(tokens[i - 1]) >= 0 || (cfc && cfc.evaluatedMethod == operators['(']))
						{
							// support for "return;" and "while (cond);"
							tokens[i] = compileOperator(';', []);
						}
						else if (tokens[i - 1] is CompiledConstant || (cfc && cfc.evaluatedMethod != operators[';']))
