 		p1[p1._pCount++] = p2
 
 		# 2.2.6
-		if p1._state != $pending
-			scheduleHandler p1, p2
+		if p1._state != $pending and p1._pCount > 0
+			scheduleHandler p1
 
 		# 2.2.7
 		p2

	 * @param {Yaku} p1
	 * @param {Yaku} p2
	###
	scheduleHandler = genScheduler 999, (p1, p2) ->
		handler = if p1._state then p2._onFulfilled else p2._onRejected

		# 2.2.7.3
		# 2.2.7.4
		if handler == $nil
			settlePromise p2, p1._state, p1._value
			return

		# 2.2.7.1
		x = genTryCatcher(callHanler) handler, p1._value
		if x == $tryErr
			# 2.2.7.2
			settlePromise p2, $rejected, x.e
			return

		settleWithX p2, x

		return


		Yaku.nextTick = try
			root.process.nextTick
		catch
			setTimeout.bind root

		(v) ->
			fnQueue[fnQueueLen++] = v

			Yaku.nextTick flush if fnQueueLen == 1

			return

