 			{
 				// perform the next iteration of the task
 				if (useTimeParameter)
-					progress = task(_currentTaskStopTime) as Number;
+					progress = task.call(context, _currentTaskStopTime) as Number;
 				else
-					progress = task() as Number;
+					progress = task.call(context) as Number;
 				
 				if (progress === null || isNaN(progress) || progress < 0 || progress > 1)
 				{

				map_task_startTime.set(iterativeTask, JS.now());
				map_task_elapsedTime.set(iterativeTask, 0);
			}
			WeaveAPI.ProgressIndicator.addTask(iterativeTask, relevantContext as ILinkableObject, description);
			
			var useTimeParameter:Boolean = iterativeTask.length > 0;
			

						JS.log(stackTrace);
						// this is incorrect behavior, but we can put a breakpoint here
						if (useTimeParameter)
							progress = task.call(context, _currentTaskStopTime) as Number;
						else
							progress = task.call(context) as Number;
					}
					progress = 1;
				}
