diff --git a/ethchain/vm.go b/ethchain/vm.go
index 9d47f950dc277bfb1daf7f7575fceb6e6e129fcb..34ecd95b718e417eb95b9f8785ba760357d420b9 100644
--- a/ethchain/vm.go
+++ b/ethchain/vm.go
@@ -506,7 +506,7 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
 			offset := stack.Pop().Int64()
 
 			data := make([]byte, 32)
-			if len(closure.Args) >= int(offset) {
+			if big.NewInt(int64(len(closure.Args))).Cmp(big.NewInt(offset)) >= 0 {
 				l := int64(math.Min(float64(offset+32), float64(len(closure.Args))))
 
 				copy(data, closure.Args[offset:l])