diff --git a/cmd/evm/main.go b/cmd/evm/main.go
index bf24da982092d46c15d6a2be4d95a35490609de6..e170dc19070d699d98d9607892e1d2b8b2213285 100644
--- a/cmd/evm/main.go
+++ b/cmd/evm/main.go
@@ -217,8 +217,8 @@ func (self *VMEnv) AddLog(log *vm.Log) {
 func (self *VMEnv) CanTransfer(from common.Address, balance *big.Int) bool {
 	return self.state.GetBalance(from).Cmp(balance) >= 0
 }
-func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
-	return core.Transfer(from, to, amount)
+func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) {
+	core.Transfer(from, to, amount)
 }
 
 func (self *VMEnv) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) {
diff --git a/core/execution.go b/core/execution.go
index e3c00a2eadf595d989295603bd85e244d2b96c4a..fd8464f6ed076e49c9eb2599aa20ea9dd8f5038c 100644
--- a/core/execution.go
+++ b/core/execution.go
@@ -17,7 +17,6 @@
 package core
 
 import (
-	"errors"
 	"math/big"
 
 	"github.com/ethereum/go-ethereum/common"
@@ -108,13 +107,7 @@ func exec(env vm.Environment, caller vm.ContractRef, address, codeAddr *common.A
 }
 
 // generic transfer method
-func Transfer(from, to vm.Account, amount *big.Int) error {
-	if from.Balance().Cmp(amount) < 0 {
-		return errors.New("Insufficient balance in account")
-	}
-
+func Transfer(from, to vm.Account, amount *big.Int) {
 	from.SubBalance(amount)
 	to.AddBalance(amount)
-
-	return nil
 }
diff --git a/core/vm/environment.go b/core/vm/environment.go
index f8e19baeacc273cbd1b06fc8aa64578b2177a2ee..ec739b26c3fc2506610529b8ec5f2cf8b119a189 100644
--- a/core/vm/environment.go
+++ b/core/vm/environment.go
@@ -51,7 +51,7 @@ type Environment interface {
 	// Determines whether it's possible to transact
 	CanTransfer(from common.Address, balance *big.Int) bool
 	// Transfers amount from one account to the other
-	Transfer(from, to Account, amount *big.Int) error
+	Transfer(from, to Account, amount *big.Int)
 	// Adds a LOG to the state
 	AddLog(*Log)
 	// Adds a structured log to the env
diff --git a/core/vm/jit_test.go b/core/vm/jit_test.go
index 8c45f2ce726562718816d8cb39efeb686c84d957..cb09e179d81f8d8994acc057e4768397909c9a31 100644
--- a/core/vm/jit_test.go
+++ b/core/vm/jit_test.go
@@ -152,9 +152,7 @@ func (self *Env) SetDepth(i int) { self.depth = i }
 func (self *Env) CanTransfer(from common.Address, balance *big.Int) bool {
 	return true
 }
-func (self *Env) Transfer(from, to Account, amount *big.Int) error {
-	return nil
-}
+func (self *Env) Transfer(from, to Account, amount *big.Int) {}
 func (self *Env) Call(caller ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) {
 	return nil, nil
 }
diff --git a/core/vm_env.go b/core/vm_env.go
index 467e34c6b9257530d6981d8fea5660ceb7763c9c..715fde52f8eb177cf37374f2432a88552e683e63 100644
--- a/core/vm_env.go
+++ b/core/vm_env.go
@@ -81,8 +81,8 @@ func (self *VMEnv) SetSnapshot(copy vm.Database) {
 	self.state.Set(copy.(*state.StateDB))
 }
 
-func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
-	return Transfer(from, to, amount)
+func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) {
+	Transfer(from, to, amount)
 }
 
 func (self *VMEnv) Call(me vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) {
diff --git a/tests/util.go b/tests/util.go
index fb9e518c806d43192118cf194700b5f65e0d3b8c..bbc67116902c94e96fc24db15ad6c9be192fcbe2 100644
--- a/tests/util.go
+++ b/tests/util.go
@@ -209,11 +209,11 @@ func (self *Env) SetSnapshot(copy vm.Database) {
 	self.state.Set(copy.(*state.StateDB))
 }
 
-func (self *Env) Transfer(from, to vm.Account, amount *big.Int) error {
+func (self *Env) Transfer(from, to vm.Account, amount *big.Int) {
 	if self.skipTransfer {
-		return nil
+		return
 	}
-	return core.Transfer(from, to, amount)
+	core.Transfer(from, to, amount)
 }
 
 func (self *Env) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) {