diff --git a/tests/block_test_util.go b/tests/block_test_util.go
index 5432bf8450257e9111c30635a6ba42ba9e4beec5..e624cced0f577fde1a9d5e6a009bc8153f0a7b39 100644
--- a/tests/block_test_util.go
+++ b/tests/block_test_util.go
@@ -208,10 +208,22 @@ func (t *BlockTest) InsertPreState(ethereum *eth.Ethereum) (*state.StateDB, erro
 	db := ethereum.StateDb()
 	statedb := state.New(common.Hash{}, db)
 	for addrString, acct := range t.preAccounts {
-		addr, _ := hex.DecodeString(addrString)
-		code, _ := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
-		balance, _ := new(big.Int).SetString(acct.Balance, 0)
-		nonce, _ := strconv.ParseUint(acct.Nonce, 16, 64)
+		addr, err := hex.DecodeString(addrString)
+		if err != nil {
+			return nil, err
+		}
+		code, err := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
+		if err != nil {
+			return nil, err
+		}
+		balance, ok := new(big.Int).SetString(acct.Balance, 0)
+		if !ok {
+			return nil, err
+		}
+		nonce, err := strconv.ParseUint(prepInt(16, acct.Nonce), 16, 64)
+		if err != nil {
+			return nil, err
+		}
 
 		if acct.PrivateKey != "" {
 			privkey, err := hex.DecodeString(strings.TrimPrefix(acct.PrivateKey, "0x"))
@@ -365,10 +377,22 @@ func (s *BlockTest) validateBlockHeader(h *btHeader, h2 *types.Header) error {
 func (t *BlockTest) ValidatePostState(statedb *state.StateDB) error {
 	for addrString, acct := range t.preAccounts {
 		// XXX: is is worth it checking for errors here?
-		addr, _ := hex.DecodeString(addrString)
-		code, _ := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
-		balance, _ := new(big.Int).SetString(acct.Balance, 0)
-		nonce, _ := strconv.ParseUint(acct.Nonce, 16, 64)
+		addr, err := hex.DecodeString(addrString)
+		if err != nil {
+			return err
+		}
+		code, err := hex.DecodeString(strings.TrimPrefix(acct.Code, "0x"))
+		if err != nil {
+			return err
+		}
+		balance, ok := new(big.Int).SetString(acct.Balance, 0)
+		if !ok {
+			return err
+		}
+		nonce, err := strconv.ParseUint(prepInt(16, acct.Nonce), 16, 64)
+		if err != nil {
+			return err
+		}
 
 		// address is indirectly verified by the other fields, as it's the db key
 		code2 := statedb.GetCode(common.BytesToAddress(addr))
diff --git a/tests/init.go b/tests/init.go
index 94178af5fd32a7baad9ed4f21b7f4be6970f6ce5..f149c11f1dd879db96324e501ad23538be5f1cfb 100644
--- a/tests/init.go
+++ b/tests/init.go
@@ -37,11 +37,6 @@ var (
 	vmTestDir          = filepath.Join(baseDir, "VMTests")
 
 	BlockSkipTests = []string{
-		// Fails in InsertPreState with: computed state root does not
-		// match genesis block bba25a96 0d8f85c8 Christoph said it will be
-		// fixed eventually
-		"SimpleTx3",
-
 		// These tests are not valid, as they are out of scope for RLP and
 		// the consensus protocol.
 		"BLOCK__RandomByteAtTheEnd",
@@ -50,7 +45,7 @@ var (
 		"TRANSCT__ZeroByteAtTheEnd",
 	}
 
-	/* Go does not support transaction (account) nonces above 2^64. This
+	/* Go client does not support transaction (account) nonces above 2^64. This
 	technically breaks consensus but is regarded as "reasonable
 	engineering constraint" as accounts cannot easily reach such high
 	nonce values in practice