diff --git a/ethereal/debugger.go b/ethereal/debugger.go
index 56f0b47fc281c45bc3c80ef76f4bb335f13242b6..b7a7c8c02fe21c57e3c2fbe72c30542e0f7d7492 100644
--- a/ethereal/debugger.go
+++ b/ethereal/debugger.go
@@ -11,7 +11,7 @@ import (
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/ethereum/eth-go/ethvm"
 	"github.com/ethereum/go-ethereum/utils"
-	"github.com/go-qml/qml"
+	"gopkg.in/qml.v1"
 )
 
 type DebuggerWindow struct {
diff --git a/ethereal/ext_app.go b/ethereal/ext_app.go
index ad826eaa61c5dd7e0c6abfd597c3adcd5d085772..5543b0083f09bf305d8286f256906e78f5692fe1 100644
--- a/ethereal/ext_app.go
+++ b/ethereal/ext_app.go
@@ -8,7 +8,7 @@ import (
 	"github.com/ethereum/eth-go/ethreact"
 	"github.com/ethereum/eth-go/ethstate"
 	"github.com/ethereum/go-ethereum/javascript"
-	"github.com/go-qml/qml"
+	"gopkg.in/qml.v1"
 )
 
 type AppContainer interface {
diff --git a/ethereal/gui.go b/ethereal/gui.go
index 5cc305977bb3b427446c0fe1824096f04ea39165..066db48b90f0bd8f5ff4ea55048480015f591b88 100644
--- a/ethereal/gui.go
+++ b/ethereal/gui.go
@@ -18,7 +18,7 @@ import (
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/ethereum/eth-go/ethwire"
 	"github.com/ethereum/go-ethereum/utils"
-	"github.com/go-qml/qml"
+	"gopkg.in/qml.v1"
 )
 
 var logger = ethlog.NewLogger("GUI")
diff --git a/ethereal/html_container.go b/ethereal/html_container.go
index bbf77402e4fdd9d96b2e5c8a8d1f739423b49137..172fff08e6c33a72be3cd540dc6cb4d8e2c721c7 100644
--- a/ethereal/html_container.go
+++ b/ethereal/html_container.go
@@ -14,8 +14,8 @@ import (
 	"github.com/ethereum/eth-go/ethstate"
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/ethereum/go-ethereum/javascript"
-	"github.com/go-qml/qml"
 	"github.com/howeyc/fsnotify"
+	"gopkg.in/qml.v1"
 )
 
 type HtmlApplication struct {
diff --git a/ethereal/main.go b/ethereal/main.go
index 431307c6f36a0186e3c423ce3041786da8560497..393308d00ce8eb3e8bef9cc5fbad82ee8f5d2fa2 100644
--- a/ethereal/main.go
+++ b/ethereal/main.go
@@ -4,9 +4,10 @@ import (
 	"os"
 	"runtime"
 
+	"github.com/ethereum/eth-go"
 	"github.com/ethereum/eth-go/ethlog"
 	"github.com/ethereum/go-ethereum/utils"
-	"github.com/go-qml/qml"
+	"gopkg.in/qml.v1"
 )
 
 const (
@@ -14,21 +15,9 @@ const (
 	Version          = "0.6.1"
 )
 
-func main() {
-	runtime.GOMAXPROCS(runtime.NumCPU())
-
-	// This is a bit of a cheat, but ey!
-	os.Setenv("QTWEBKIT_INSPECTOR_SERVER", "127.0.0.1:99999")
-
-	qml.Init(nil)
-
-	var interrupted = false
-	utils.RegisterInterrupt(func(os.Signal) {
-		interrupted = true
-	})
-
-	utils.HandleInterrupt()
+var ethereum *eth.Ethereum
 
+func run() error {
 	// precedence: code-internal flag default < config file < environment variables < command line
 	Init() // parsing command line
 
@@ -47,7 +36,7 @@ func main() {
 
 	clientIdentity := utils.NewClientIdentity(ClientIdentifier, Version, Identifier)
 
-	ethereum := utils.NewEthereum(db, clientIdentity, keyManager, UseUPnP, OutboundPort, MaxPeer)
+	ethereum = utils.NewEthereum(db, clientIdentity, keyManager, UseUPnP, OutboundPort, MaxPeer)
 
 	if ShowGenesis {
 		utils.ShowGenesis(ethereum)
@@ -65,6 +54,26 @@ func main() {
 	utils.StartEthereum(ethereum, UseSeed)
 	// gui blocks the main thread
 	gui.Start(AssetPath)
+
+	return nil
+}
+
+func main() {
+	runtime.GOMAXPROCS(runtime.NumCPU())
+
+	// This is a bit of a cheat, but ey!
+	os.Setenv("QTWEBKIT_INSPECTOR_SERVER", "127.0.0.1:99999")
+
+	//qml.Init(nil)
+	qml.Run(run)
+
+	var interrupted = false
+	utils.RegisterInterrupt(func(os.Signal) {
+		interrupted = true
+	})
+
+	utils.HandleInterrupt()
+
 	// we need to run the interrupt callbacks in case gui is closed
 	// this skips if we got here by actual interrupt stopping the GUI
 	if !interrupted {
diff --git a/ethereal/qml_container.go b/ethereal/qml_container.go
index 45a6c03271578c41079b65c6e34e1f9d189644b1..babb9ceabbd0c351bd8d65f61a7253923ad1ed87 100644
--- a/ethereal/qml_container.go
+++ b/ethereal/qml_container.go
@@ -8,7 +8,7 @@ import (
 	"github.com/ethereum/eth-go/ethpub"
 	"github.com/ethereum/eth-go/ethstate"
 	"github.com/ethereum/eth-go/ethutil"
-	"github.com/go-qml/qml"
+	"gopkg.in/qml.v1"
 )
 
 type QmlApplication struct {
diff --git a/ethereal/ui_lib.go b/ethereal/ui_lib.go
index c48a06547e81288a304352b4c9c3b32089d9cce2..9220581cdd12fb0ffb0e91265a585ecc2358494b 100644
--- a/ethereal/ui_lib.go
+++ b/ethereal/ui_lib.go
@@ -9,7 +9,7 @@ import (
 	"github.com/ethereum/eth-go/ethpipe"
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/ethereum/go-ethereum/javascript"
-	"github.com/go-qml/qml"
+	"gopkg.in/qml.v1"
 )
 
 type memAddr struct {