diff --git a/execution/evm/abi/abi.go b/execution/evm/abi/abi.go
index 4f9c164edfc4ba9425e99b0cc2b05feb96278eb5..99cc07c31fa1482fdaf5ec9ce65a1f4f8e0d932e 100644
--- a/execution/evm/abi/abi.go
+++ b/execution/evm/abi/abi.go
@@ -394,11 +394,11 @@ func (e EVMInt) unpack(data []byte, offset int, v interface{}) (int, error) {
 		}
 	case *big.Int:
 		b := new(big.Int)
-		b.SetBytes(data[0:ElementSize])
+		b.SetBytes(inv[0:ElementSize])
 		if sign {
-			v = b.Neg(b)
+			*v = *b.Sub(big.NewInt(-1), b)
 		} else {
-			v = b
+			*v = *b
 		}
 	case *uint64:
 		if sign {
diff --git a/execution/solidity/event_emitter.sol b/execution/solidity/event_emitter.sol
index fe63f055d3943967f6e6eab480f91399e62154ff..d5acf5770b4f1de87af00634ccb1962bcbfa7d7e 100644
--- a/execution/solidity/event_emitter.sol
+++ b/execution/solidity/event_emitter.sol
@@ -7,10 +7,11 @@ contract EventEmitter {
         bool trueism,
         string german ,
         int64 indexed newDepth,
+        int bignum,
         string indexed hash)
         anonymous;
 
     function EmitOne() public {
-        emit ManyTypes("Downsie!", true, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", 102, 'hash');
+        emit ManyTypes("Downsie!", true, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", 102, 42, "hash");
     }
 }
\ No newline at end of file
diff --git a/execution/solidity/event_emitter.sol.go b/execution/solidity/event_emitter.sol.go
index dc0a0f8eadb7b26443708d08153e690ad6a393cc..65958a752cc9196dddb6833b89f3f91a2f733e44 100644
--- a/execution/solidity/event_emitter.sol.go
+++ b/execution/solidity/event_emitter.sol.go
@@ -2,5 +2,5 @@ package solidity
 
 import "github.com/tmthrgd/go-hex"
 
-var Bytecode_EventEmitter = hex.MustDecodeString("6080604052348015600f57600080fd5b506101848061001f6000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063e8e49a7114610046575b600080fd5b34801561005257600080fd5b5061005b61005d565b005b60405180807f68617368000000000000000000000000000000000000000000000000000000008152506004019050604051809103902060667f446f776e736965210000000000000000000000000000000000000000000000006001604051808215151515815260200180602001828103825260518152602001807f446f6e617564616d7066736368696666666168727473656c656b7472697a697481526020017fc3a474656e686175707462657472696562737765726b626175756e746572626581526020017f616d74656e676573656c6c7363686166740000000000000000000000000000008152506060019250505060405180910390a35600a165627a7a72305820cce41c19422f23aeff2c5d49dd42145ea2327e00112ebcef35976afeecf7a54c0029")
-var Abi_EventEmitter = []byte(`[{"constant":false,"inputs":[],"name":"EmitOne","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":true,"inputs":[{"indexed":true,"name":"direction","type":"bytes32"},{"indexed":false,"name":"trueism","type":"bool"},{"indexed":false,"name":"german","type":"string"},{"indexed":true,"name":"newDepth","type":"int64"},{"indexed":true,"name":"hash","type":"string"}],"name":"ManyTypes","type":"event"}]`)
+var Bytecode_EventEmitter = hex.MustDecodeString("6080604052348015600f57600080fd5b5061018d8061001f6000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063e8e49a7114610046575b600080fd5b34801561005257600080fd5b5061005b61005d565b005b60405180807f68617368000000000000000000000000000000000000000000000000000000008152506004019050604051809103902060667f446f776e736965210000000000000000000000000000000000000000000000006001602a604051808315151515815260200180602001838152602001828103825260518152602001807f446f6e617564616d7066736368696666666168727473656c656b7472697a697481526020017fc3a474656e686175707462657472696562737765726b626175756e746572626581526020017f616d74656e676573656c6c736368616674000000000000000000000000000000815250606001935050505060405180910390a35600a165627a7a72305820ee1580cac6792de1bf32dc2356469b317f569acde5a6e9cd05e0f0119bee19eb0029")
+var Abi_EventEmitter = []byte(`[{"constant":false,"inputs":[],"name":"EmitOne","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":true,"inputs":[{"indexed":true,"name":"direction","type":"bytes32"},{"indexed":false,"name":"trueism","type":"bool"},{"indexed":false,"name":"german","type":"string"},{"indexed":true,"name":"newDepth","type":"int64"},{"indexed":false,"name":"bignum","type":"int256"},{"indexed":true,"name":"hash","type":"string"}],"name":"ManyTypes","type":"event"}]`)
diff --git a/integration/rpctransact/call_test.go b/integration/rpctransact/call_test.go
index 0e9274df4c73f00694874d72ce8fcf81df18f208..fe46a98d271739dd2e62f83dc03b61dc50e808bf 100644
--- a/integration/rpctransact/call_test.go
+++ b/integration/rpctransact/call_test.go
@@ -6,6 +6,7 @@ import (
 	"bytes"
 	"context"
 	"fmt"
+	"math/big"
 	"sync"
 	"testing"
 
@@ -307,13 +308,14 @@ func TestEventEmitter(t *testing.T) {
 	h := sha3.NewKeccak256()
 	h.Write([]byte("hash"))
 	expectedHash := h.Sum(nil)
-	// "Downsie!", true, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", 102, [0xcd, 0x9a, 0xf3], 'hash')
+	// "Downsie!", true, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", 102, 42, 'hash')
 	b := *data[0].(*[]byte)
 	assert.Equal(t, "Downsie!", string(bytes.Trim(b, "\x00")))
 	assert.Equal(t, true, *data[1].(*bool))
 	assert.Equal(t, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", *data[2].(*string))
 	assert.Equal(t, int64(102), *data[3].(*int64))
-	assert.Equal(t, expectedHash, *data[4].(*[]byte))
+	assert.Equal(t, int64(42), data[4].(*big.Int).Int64())
+	assert.Equal(t, expectedHash, *data[5].(*[]byte))
 }
 
 /*
@@ -344,12 +346,13 @@ func TestEventEmitterBytes32isString(t *testing.T) {
 	h := sha3.NewKeccak256()
 	h.Write([]byte("hash"))
 	expectedHash := h.Sum(nil)
-	// "Downsie!", true, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", 102, [0xcd, 0x9a, 0xf3], 'hash')
+	// "Downsie!", true, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", 102, 42, 'hash')
 	assert.Equal(t, "Downsie!", *data[0].(*string))
 	assert.Equal(t, true, *data[1].(*bool))
 	assert.Equal(t, "Donaudampfschifffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft", *data[2].(*string))
 	assert.Equal(t, int64(102), *data[3].(*int64))
-	assert.Equal(t, expectedHash, *data[4].(*[]byte))
+	assert.Equal(t, int64(42), data[4].(*big.Int).Int64())
+	assert.Equal(t, expectedHash, *data[5].(*[]byte))
 }
 
 func TestRevert(t *testing.T) {