 		
 		public function dispose():void
 		{
+			handlers.length = 0;
 			setBusy(false);
 		}
 	}

					}
				}
			);
			
			// callLater will not call the function if the context was disposed
			WeaveAPI.StageUtils.callLater(relevantContext, function():void {
				handlers.push(handler);
				
				if (!dependencies.some(dependencyIsBusy))
				{
					if (result !== undefined)
						handler.onResult(result);
					else if (error !== undefined)
						handler.onError(error);
				}
			});
			
			return next;
		}

			next.result = undefined;
			var handler:Handler = new Handler(
				function(result:Object):void {
					handler.wasCalled = true;
					try
					{
						next.setResult(onFulfilled(result));
