diff --git a/cmd/ethtest/main.go b/cmd/ethtest/main.go
index 5429cab31a952c7e61aa49341f64142fc4ab6544..67b9653960b68ccdd601ee58c5be727e234b8a99 100644
--- a/cmd/ethtest/main.go
+++ b/cmd/ethtest/main.go
@@ -26,6 +26,7 @@ import (
 	"strings"
 
 	"github.com/codegangsta/cli"
+	"github.com/ethereum/go-ethereum/core/vm"
 	"github.com/ethereum/go-ethereum/logger/glog"
 	"github.com/ethereum/go-ethereum/tests"
 )
@@ -62,6 +63,10 @@ var (
 		Name:  "skip",
 		Usage: "Tests names to skip",
 	}
+	TraceFlag = cli.BoolFlag{
+		Name:  "trace",
+		Usage: "Enable VM tracing",
+	}
 )
 
 func runTestWithReader(test string, r io.Reader) error {
@@ -173,7 +178,6 @@ func runSuite(test, file string) {
 					glog.Fatalln(err)
 				}
 			}
-
 		}
 	}
 }
@@ -184,6 +188,7 @@ func setupApp(c *cli.Context) {
 	continueOnError = c.GlobalBool(ContinueOnErrorFlag.Name)
 	useStdIn := c.GlobalBool(ReadStdInFlag.Name)
 	skipTests = strings.Split(c.GlobalString(SkipTestsFlag.Name), " ")
+	vm.Debug = c.GlobalBool(TraceFlag.Name)
 
 	if !useStdIn {
 		runSuite(flagTest, flagFile)
@@ -211,6 +216,7 @@ func main() {
 		ContinueOnErrorFlag,
 		ReadStdInFlag,
 		SkipTestsFlag,
+		TraceFlag,
 	}
 
 	if err := app.Run(os.Args); err != nil {