 						JS.log(stackTrace);
 						// this is incorrect behavior, but we can put a breakpoint here
 						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;
 					}
 					progress = 1;
 				}

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

					map_task_time['delete'](task);
					JS.log('disposed', JS.now()-map_task_time.get(task)[0], priority, map_task_time.get(task)[1], value);
				}
				WeaveAPI.ProgressIndicator.removeTask(taskToken);
				return;
			}

