diff --git a/opcode.go b/opcode.go
index 613b8361..613fd74f 100644
--- a/opcode.go
+++ b/opcode.go
@@ -654,7 +654,7 @@ func (pop *parsedOpcode) exec(s *Script) error {
 	// *sigh* bitcoind pretty much mandates that we violate layering here.
 	// Any opcode that isn't just adding data to the stack counts here
 	// as an operation.
-	if pop.opcode.value < OP_16 {
+	if pop.opcode.value > OP_16 {
 		s.numOps++
 		if s.numOps > MaxOpsPerScript {
 			return StackErrTooManyOperations
diff --git a/opcode_test.go b/opcode_test.go
index 3970b10d..dbbecd30 100644
--- a/opcode_test.go
+++ b/opcode_test.go
@@ -2400,6 +2400,425 @@ var detailedTests = []detailedTest{
 		expectedReturn: btcscript.StackErrVerifyFailed,
 		disassembly:    "OP_1 304402204e45e16932b8af514961a1d3a1a25fdf3f4f7732e9d624c6c61548ab5fb8cd410220181522ec8eca07de4860a4acdd12909d831cc56cbbac4622082221a8768d1d0901 OP_1 OP_1 OP_1 OP_CHECKMULTISIGVERIFY",
 	},
+	{
+		// 201 operations + one push, should just fit limits
+		name: "max operations",
+		script: []byte{btcscript.OP_1,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+		},
+		after:	[][]byte{{1}, {1}},
+		disassembly:      "OP_1 OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP",
+	},
+	{
+		// 202 operations + one push
+		name: "too many operations",
+		script: []byte{btcscript.OP_1,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+				btcscript.OP_DUP,
+				btcscript.OP_DROP,
+		},
+		expectedReturn: btcscript.StackErrTooManyOperations,
+		disassembly:      "OP_1 OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP OP_DUP OP_DROP",
+	},
 	{
 		name:           "OP_CAT disabled",
 		script:         []byte{btcscript.OP_CAT},
diff --git a/test_coverage.txt b/test_coverage.txt
index 83ce72b9..cd1b94d6 100644
--- a/test_coverage.txt
+++ b/test_coverage.txt
@@ -2,55 +2,56 @@
 github.com/conformal/btcscript/stack.go		 asInt				 100.00% (18/18)
 github.com/conformal/btcscript/stack.go		 fromInt			 100.00% (14/14)
 github.com/conformal/btcscript/opcode.go	 opcodeWithin			 100.00% (13/13)
+github.com/conformal/btcscript/opcode.go	 parsedOpcode.bytes		 100.00% (12/12)
 github.com/conformal/btcscript/stack.go		 Stack.nipN			 100.00% (12/12)
 github.com/conformal/btcscript/opcode.go	 parsedOpcode.print		 100.00% (12/12)
-github.com/conformal/btcscript/opcode.go	 parsedOpcode.bytes		 100.00% (12/12)
-github.com/conformal/btcscript/opcode.go	 opcodeNotIf			 100.00% (11/11)
 github.com/conformal/btcscript/opcode.go	 opcodeIf			 100.00% (11/11)
+github.com/conformal/btcscript/opcode.go	 opcodeNotIf			 100.00% (11/11)
+github.com/conformal/btcscript/opcode.go	 opcodeLessThanOrEqual		 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeGreaterThan		 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeLessThan			 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeNumNotEqual		 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeBoolOr			 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeBoolAnd			 100.00% (10/10)
-github.com/conformal/btcscript/opcode.go	 opcodeMin			 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeNumEqual			 100.00% (10/10)
-github.com/conformal/btcscript/stack.go		 Stack.Tuck			 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeMax			 100.00% (10/10)
+github.com/conformal/btcscript/stack.go		 Stack.Tuck			 100.00% (10/10)
+github.com/conformal/btcscript/opcode.go	 opcodeMin			 100.00% (10/10)
 github.com/conformal/btcscript/opcode.go	 opcodeGreaterThanOrEqual	 100.00% (10/10)
-github.com/conformal/btcscript/opcode.go	 opcodeLessThanOrEqual		 100.00% (10/10)
-github.com/conformal/btcscript/stack.go		 Stack.OverN			 100.00% (9/9)
-github.com/conformal/btcscript/script.go	 DisasmString			 100.00% (9/9)
 github.com/conformal/btcscript/stack.go		 Stack.RotN			 100.00% (9/9)
+github.com/conformal/btcscript/script.go	 DisasmString			 100.00% (9/9)
 github.com/conformal/btcscript/stack.go		 Stack.SwapN			 100.00% (9/9)
+github.com/conformal/btcscript/stack.go		 Stack.OverN			 100.00% (9/9)
 github.com/conformal/btcscript/opcode.go	 opcodeEqual			 100.00% (8/8)
+github.com/conformal/btcscript/opcode.go	 opcodeAdd			 100.00% (8/8)
 github.com/conformal/btcscript/opcode.go	 opcodeSub			 100.00% (8/8)
 github.com/conformal/btcscript/stack.go		 Stack.DupN			 100.00% (8/8)
-github.com/conformal/btcscript/opcode.go	 opcodeAdd			 100.00% (8/8)
 github.com/conformal/btcscript/opcode.go	 opcodePick			 100.00% (7/7)
-github.com/conformal/btcscript/opcode.go	 opcodeRoll			 100.00% (7/7)
-github.com/conformal/btcscript/stack.go		 Stack.DropN			 100.00% (7/7)
 github.com/conformal/btcscript/opcode.go	 opcodeNot			 100.00% (7/7)
+github.com/conformal/btcscript/stack.go		 Stack.DropN			 100.00% (7/7)
 github.com/conformal/btcscript/opcode.go	 opcode0NotEqual		 100.00% (7/7)
-github.com/conformal/btcscript/opcode.go	 parsedOpcode.conditional	 100.00% (6/6)
-github.com/conformal/btcscript/opcode.go	 opcodeIfDup			 100.00% (6/6)
-github.com/conformal/btcscript/opcode.go	 opcodeVerify			 100.00% (6/6)
+github.com/conformal/btcscript/opcode.go	 opcodeRoll			 100.00% (7/7)
 github.com/conformal/btcscript/opcode.go	 opcodeElse			 100.00% (6/6)
-github.com/conformal/btcscript/opcode.go	 opcodeHash160			 100.00% (5/5)
+github.com/conformal/btcscript/opcode.go	 opcodeIfDup			 100.00% (6/6)
+github.com/conformal/btcscript/opcode.go	 parsedOpcode.conditional	 100.00% (6/6)
+github.com/conformal/btcscript/opcode.go	 opcodeVerify			 100.00% (6/6)
+github.com/conformal/btcscript/opcode.go	 opcodeHash256			 100.00% (5/5)
 github.com/conformal/btcscript/script.go	 removeOpcode			 100.00% (5/5)
 github.com/conformal/btcscript/script.go	 removeOpcodeByData		 100.00% (5/5)
 github.com/conformal/btcscript/stack.go		 Stack.PickN			 100.00% (5/5)
-github.com/conformal/btcscript/opcode.go	 opcodeAbs			 100.00% (5/5)
-github.com/conformal/btcscript/opcode.go	 opcodeHash256			 100.00% (5/5)
+github.com/conformal/btcscript/opcode.go	 parsedOpcode.exec		 100.00% (5/5)
+github.com/conformal/btcscript/stack.go		 Stack.RollN			 100.00% (5/5)
 github.com/conformal/btcscript/opcode.go	 opcodeToAltStack		 100.00% (5/5)
 github.com/conformal/btcscript/opcode.go	 opcodeFromAltStack		 100.00% (5/5)
+github.com/conformal/btcscript/opcode.go	 opcodeSha256			 100.00% (5/5)
 github.com/conformal/btcscript/opcode.go	 opcodeRipemd160		 100.00% (5/5)
 github.com/conformal/btcscript/opcode.go	 opcodeNegate			 100.00% (5/5)
-github.com/conformal/btcscript/opcode.go	 opcodeSha256			 100.00% (5/5)
-github.com/conformal/btcscript/opcode.go	 opcodeSize			 100.00% (5/5)
+github.com/conformal/btcscript/opcode.go	 opcodeHash160			 100.00% (5/5)
+github.com/conformal/btcscript/opcode.go	 opcodeAbs			 100.00% (5/5)
 github.com/conformal/btcscript/script.go	 Script.validPC			 100.00% (5/5)
 github.com/conformal/btcscript/opcode.go	 opcode1Add			 100.00% (5/5)
 github.com/conformal/btcscript/opcode.go	 opcode1Sub			 100.00% (5/5)
-github.com/conformal/btcscript/stack.go		 Stack.RollN			 100.00% (5/5)
+github.com/conformal/btcscript/opcode.go	 opcodeSize			 100.00% (5/5)
 github.com/conformal/btcscript/stack.go		 Stack.PeekBool			 100.00% (4/4)
 github.com/conformal/btcscript/opcode.go	 opcodeEndif			 100.00% (4/4)
 github.com/conformal/btcscript/opcode.go	 opcodeEqualVerify		 100.00% (4/4)
@@ -65,38 +66,35 @@ github.com/conformal/btcscript/script.go	 unparseScript			 100.00% (4/4)
 github.com/conformal/btcscript/script.go	 Script.curPC			 100.00% (4/4)
 github.com/conformal/btcscript/script.go	 Script.DisasmPC		 100.00% (4/4)
 github.com/conformal/btcscript/script.go	 getStack			 100.00% (4/4)
-github.com/conformal/btcscript/address.go	 ScriptType.String		 100.00% (3/3)
 github.com/conformal/btcscript/stack.go		 fromBool			 100.00% (3/3)
-github.com/conformal/btcscript/script.go	 scriptUInt32			 100.00% (3/3)
-github.com/conformal/btcscript/script.go	 scriptUInt8			 100.00% (3/3)
-github.com/conformal/btcscript/script.go	 setStack			 100.00% (3/3)
+github.com/conformal/btcscript/address.go	 ScriptType.String		 100.00% (3/3)
 github.com/conformal/btcscript/script.go	 scriptUInt16			 100.00% (3/3)
+github.com/conformal/btcscript/script.go	 setStack			 100.00% (3/3)
+github.com/conformal/btcscript/script.go	 scriptUInt8			 100.00% (3/3)
+github.com/conformal/btcscript/script.go	 scriptUInt32			 100.00% (3/3)
 github.com/conformal/btcscript/stack.go		 Stack.NipN			 100.00% (2/2)
 github.com/conformal/btcscript/stack.go		 Stack.Depth			 100.00% (2/2)
 github.com/conformal/btcscript/opcode.go	 calcHash			 100.00% (2/2)
-github.com/conformal/btcscript/opcode.go	 opcodeFalse			 100.00% (2/2)
 github.com/conformal/btcscript/opcode.go	 opcodeDepth			 100.00% (2/2)
-github.com/conformal/btcscript/opcode.go	 opcode1Negate			 100.00% (2/2)
 github.com/conformal/btcscript/opcode.go	 opcodeN			 100.00% (2/2)
 github.com/conformal/btcscript/opcode.go	 opcodeCodeSeparator		 100.00% (2/2)
+github.com/conformal/btcscript/opcode.go	 opcode1Negate			 100.00% (2/2)
+github.com/conformal/btcscript/opcode.go	 opcodeFalse			 100.00% (2/2)
 github.com/conformal/btcscript/opcode.go	 opcodePushData			 100.00% (2/2)
-github.com/conformal/btcscript/opcode.go	 opcode2Rot			 100.00% (1/1)
+github.com/conformal/btcscript/opcode.go	 opcodeNop			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcode3Dup			 100.00% (1/1)
-github.com/conformal/btcscript/opcode.go	 opcode2Dup			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 calcHash160			 100.00% (1/1)
+github.com/conformal/btcscript/opcode.go	 opcode2Dup			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcode2Drop			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcodeReturn			 100.00% (1/1)
-github.com/conformal/btcscript/opcode.go	 opcodeNop			 100.00% (1/1)
 github.com/conformal/btcscript/stack.go		 Stack.PushByteArray		 100.00% (1/1)
 github.com/conformal/btcscript/stack.go		 Stack.PushInt			 100.00% (1/1)
+github.com/conformal/btcscript/opcode.go	 opcode2Over			 100.00% (1/1)
 github.com/conformal/btcscript/stack.go		 Stack.PopByteArray		 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcodeInvalid			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcodeReserved			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcodeDisabled			 100.00% (1/1)
-github.com/conformal/btcscript/script.go	 isPubkey			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 init				 100.00% (1/1)
-github.com/conformal/btcscript/script.go	 Script.subScript		 100.00% (1/1)
-github.com/conformal/btcscript/log.go		 UseLogger			 100.00% (1/1)
 github.com/conformal/btcscript/script.go	 Script.SetStack		 100.00% (1/1)
 github.com/conformal/btcscript/script.go	 isPubkeyHash			 100.00% (1/1)
 github.com/conformal/btcscript/script.go	 isScriptHash			 100.00% (1/1)
@@ -113,10 +111,13 @@ github.com/conformal/btcscript/opcode.go	 opcodeNip			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcodeDup			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcodeDrop			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcode2Swap			 100.00% (1/1)
+github.com/conformal/btcscript/opcode.go	 opcode2Rot			 100.00% (1/1)
 github.com/conformal/btcscript/script.go	 Script.GetStack		 100.00% (1/1)
 github.com/conformal/btcscript/log.go		 newLogClosure			 100.00% (1/1)
-github.com/conformal/btcscript/opcode.go	 opcode2Over			 100.00% (1/1)
+github.com/conformal/btcscript/script.go	 isPubkey			 100.00% (1/1)
 github.com/conformal/btcscript/stack.go		 Stack.PushBool			 100.00% (1/1)
+github.com/conformal/btcscript/script.go	 Script.subScript		 100.00% (1/1)
+github.com/conformal/btcscript/log.go		 UseLogger			 100.00% (1/1)
 github.com/conformal/btcscript/opcode.go	 opcodeCheckMultiSig		 96.43% (54/56)
 github.com/conformal/btcscript/opcode.go	 opcodeCheckSig			 96.15% (25/26)
 github.com/conformal/btcscript/script.go	 NewScript			 95.24% (20/21)
@@ -125,7 +126,6 @@ github.com/conformal/btcscript/script.go	 parseScript			 93.75% (30/32)
 github.com/conformal/btcscript/script.go	 Script.Step			 91.89% (34/37)
 github.com/conformal/btcscript/script.go	 typeOfScript			 83.33% (5/6)
 github.com/conformal/btcscript/script.go	 Script.DisasmScript		 80.00% (4/5)
-github.com/conformal/btcscript/opcode.go	 parsedOpcode.exec		 80.00% (4/5)
 github.com/conformal/btcscript/script.go	 isPushOnly			 75.00% (3/4)
 github.com/conformal/btcscript/opcode.go	 opcodeCheckSigVerify		 75.00% (3/4)
 github.com/conformal/btcscript/script.go	 Script.calcScriptHash		 71.43% (25/35)
@@ -135,5 +135,5 @@ github.com/conformal/btcscript/opcode.go	 opcodeSha1			 60.00% (3/5)
 github.com/conformal/btcscript/script.go	 Script.Execute			 44.44% (8/18)
 github.com/conformal/btcscript/log.go		 SetLogWriter			 0.00% (0/7)
 github.com/conformal/btcscript/log.go		 logClosure.String		 0.00% (0/1)
-github.com/conformal/btcscript			 --------------------------	 93.76% (841/897)
+github.com/conformal/btcscript			 --------------------------	 93.87% (842/897)