diff --git a/eth/tracers/tracer.go b/eth/tracers/tracer.go
index 2c52761f5e4d671a5a8d7698612746dc42d0b6ae..e1372b23bc497f4e0f5dafc28f81478858c34a94 100644
--- a/eth/tracers/tracer.go
+++ b/eth/tracers/tracer.go
@@ -600,6 +600,7 @@ func (jst *Tracer) CaptureState(env *vm.EVM, pc uint64, op vm.OpCode, gas, cost
 	// If tracing was interrupted, set the error and stop
 	if atomic.LoadUint32(&jst.interrupt) > 0 {
 		jst.err = jst.reason
+		env.Cancel()
 		return
 	}
 	jst.opWrapper.op = op