diff --git a/manager/eris-mint/evm/vm.go b/manager/eris-mint/evm/vm.go
index e113513aa0585225b0147573e919151ccacd0245..b44bddfeceae9b6849f51926963abf565c8599ce 100644
--- a/manager/eris-mint/evm/vm.go
+++ b/manager/eris-mint/evm/vm.go
@@ -27,7 +27,7 @@ var (
 	ErrDataStackOverflow      = errors.New("Data stack overflow")
 	ErrDataStackUnderflow     = errors.New("Data stack underflow")
 	ErrInvalidContract        = errors.New("Invalid contract")
-	ErrNativeContractCodeCopy = errors.New("Tried to copy native contract code, but this is not supported")
+	ErrNativeContractCodeCopy = errors.New("Tried to copy native contract code")
 )
 
 type ErrPermission struct {
@@ -571,8 +571,8 @@ func (vm *VM) call(caller, callee *Account, code, input []byte, value int64, gas
 				if _, ok := registeredNativeContracts[addr]; !ok {
 					return nil, firstErr(err, ErrUnknownAddress)
 				}
-				stack.Push64(int64(One256))
-				dbg.Printf(" => Hit native contract\n\n")
+				dbg.Printf(" => returning code size of 1 to indicated existence of native contract at %X\n", addr)
+				stack.Push(One256)
 			} else {
 				code := acc.Code
 				l := int64(len(code))
@@ -586,10 +586,11 @@ func (vm *VM) call(caller, callee *Account, code, input []byte, value int64, gas
 			}
 			acc := vm.appState.GetAccount(addr)
 			if acc == nil {
-				if _, ok := registeredNativeContracts[addr]; !ok {
-					return nil, firstErr(err, ErrUnknownAddress)
+				if _, ok := registeredNativeContracts[addr]; ok {
+					dbg.Printf(" => attempted to copy native contract at %X but this is not supported\n", addr)
+					return nil, firstErr(err, ErrNativeContractCodeCopy)
 				}
-				return nil, firstErr(err, ErrNativeContractCodeCopy)
+				return nil, firstErr(err, ErrUnknownAddress)
 			}
 			code := acc.Code
 			memOff := stack.Pop64()