                     case .Rejected:
                         _reject(self_.errorInfo!)
                     default:
-                        self_.machine.addEventHandler(.Progress) { context in
-                            if let (_, progressValue) = context.userInfo as? Task<Progress2, Value2, Error>.ProgressTuple {
-                                progress(progressValue)
-                            }
-                        }
+                        // comment-out: only innerTask's progress should be sent to newTask
+//                        self_.machine.addEventHandler(.Progress) { context in
+//                            if let (_, progressValue) = context.userInfo as? Task<Progress2, Value2, Error>.ProgressTuple {
+//                                progress(progressValue)
+//                            }
+//                        }
                         self_.machine.addEventHandler(.Fulfill) { context in
                             if let value = context.userInfo as? Value {
                                 bind(value)

        
        if initClosure == nil { return self }
        
        var nextTask: Task = self
        
        for i in 1...maxTryCount-1 {
            nextTask = nextTask.failure { _ -> Task in
                return Task(weakified: weakified, _initClosure: initClosure!)   // create a clone-task when rejected
            }
        }
        
        return nextTask
    }
    
    ///

                    case .Rejected:
                        bind(nil, self_.errorInfo!)
                    default:
                        // comment-out: only innerTask's progress should be sent to newTask
//                        self_.machine.addEventHandler(.Progress) { context in
//                            if let (_, progressValue) = context.userInfo as? Task<Progress2, Value2, Error>.ProgressTuple {
//                                progress(progressValue)
//                            }
//                        }
                        self_.machine.addEventHandler(.Fulfill) { context in
                            if let value = context.userInfo as? Value {
                                bind(value, nil)
