The BIP147 reads: *Sigop cost* is defined. The cost of a sigop in traditional script is 4, while the cost of a sigop in witness program is 1. The new rule is total *sigop cost* ≤ 80,000. But the code implements: if (nSigOps + (nWitSigOps + 3) / 4 > MAX_BLOCK_SIGOPS) ... error.... Which is not the same. For example: nSigOps = 1 nWitSigOps =79999 Is not an error by BIP definition but it's an error by the implemented code. Regards, Sergio.