diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go
index 4d6319fd1eae8353435d195850490954bd2c99cf..fdc82179f1b39dd409d129c8328e34f5d4675084 100644
--- a/tests/vm/gh_test.go
+++ b/tests/vm/gh_test.go
@@ -64,14 +64,15 @@ type Env struct {
 type VmTest struct {
 	Callcreates interface{}
 	//Env         map[string]string
-	Env         Env
-	Exec        map[string]string
-	Transaction map[string]string
-	Logs        []Log
-	Gas         string
-	Out         string
-	Post        map[string]Account
-	Pre         map[string]Account
+	Env           Env
+	Exec          map[string]string
+	Transaction   map[string]string
+	Logs          []Log
+	Gas           string
+	Out           string
+	Post          map[string]Account
+	Pre           map[string]Account
+	PostStateRoot string
 }
 
 func RunVmTest(p string, t *testing.T) {
@@ -154,6 +155,12 @@ func RunVmTest(p string, t *testing.T) {
 			}
 		}
 
+		if !isVmTest {
+			if !bytes.Equal(ethutil.Hex2Bytes(test.PostStateRoot), statedb.Root()) {
+				t.Errorf("Post state root error. Expected %s, got %x", test.PostStateRoot, statedb.Root())
+			}
+		}
+
 		if len(test.Logs) > 0 {
 			if len(test.Logs) != len(logs) {
 				t.Errorf("log length mismatch. Expected %d, got %d", len(test.Logs), len(logs))