     }
 
     public func then(dispatchQueue: dispatch_queue_t, _ onFulfilled: (ValueType -> T)?, _ onRejected: (NSError -> Void)? = nil) -> Promise<T> {
-        // If onFulfilled is not nil, the compiler should choose generics function.
+        // If onFulfilled is not nil, the compiler should choose generic function.
         assert( onFulfilled == nil )
 
         let nextPromise = Promise<T>()

        switch self.state {
        case .Pending:
            performSync {
                self.onFulfilled.append(onFulfilledAsync)
            }
        case .Fulfilled(let value):
            onFulfilledAsync(value)

            if case .Pending = self.state {
                self.state = .Rejected(error)

                for cb in self.rejectCallbacks {
                    cb(error)
                }

                self.rejectCallbacks.removeAll(keepCapacity: false)
            }
        }
    }
