diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml
index 51f064adf11b2166fc8b6aa08c25e5d748bba0fe..dee31a04e51221eec1c32811e874e48e01c22da6 100644
--- a/ethereal/assets/qml/wallet.qml
+++ b/ethereal/assets/qml/wallet.qml
@@ -6,6 +6,7 @@ import QtQuick.Window 2.1;
 import QtQuick.Controls.Styles 1.1
 import Ethereum 1.0
 
+
 ApplicationWindow {
 	id: root
 
diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml
index d3cffeecab4cc5cc0a74afea4ab779ae0328261c..f00b045997bff1df6d83cbe128095c5f282c2659 100644
--- a/ethereal/assets/qml/webapp.qml
+++ b/ethereal/assets/qml/webapp.qml
@@ -188,7 +188,7 @@ ApplicationWindow {
 
 		WebView {
 			id: inspector
-			visible: false
+			visible:true
 			url: webview.experimental.remoteInspectorUrl
 			anchors {
 				left: root.left
diff --git a/ethereum/javascript_runtime.go b/ethereum/javascript_runtime.go
index fa01c7005d5029879b006947e66f9196c7de2c75..93297f604a82781b293d44ad74e295a7f3e6b119 100644
--- a/ethereum/javascript_runtime.go
+++ b/ethereum/javascript_runtime.go
@@ -6,6 +6,7 @@ import (
 	"github.com/ethereum/eth-go/ethchain"
 	"github.com/ethereum/eth-go/ethpub"
 	"github.com/ethereum/eth-go/ethutil"
+	"github.com/ethereum/go-ethereum/utils"
 	"github.com/obscuren/otto"
 	"io/ioutil"
 	"os"
@@ -116,14 +117,26 @@ func (self *JSRE) initStdFuncs() {
 	eth.Set("watch", self.watch)
 	eth.Set("addPeer", self.addPeer)
 	eth.Set("require", self.require)
+	eth.Set("stopMining", self.stopMining)
+	eth.Set("startMining", self.startMining)
 }
 
 /*
  * The following methods are natively implemented javascript functions
  */
 
+func (self *JSRE) stopMining(call otto.FunctionCall) otto.Value {
+	v, _ := self.vm.ToValue(utils.StopMining(self.ethereum))
+	return v
+}
+
+func (self *JSRE) startMining(call otto.FunctionCall) otto.Value {
+	v, _ := self.vm.ToValue(utils.StartMining(self.ethereum))
+	return v
+}
+
 // eth.watch
-func (self JSRE) watch(call otto.FunctionCall) otto.Value {
+func (self *JSRE) watch(call otto.FunctionCall) otto.Value {
 	addr, _ := call.Argument(0).ToString()
 	var storageAddr string
 	var cb otto.Value
diff --git a/ethereum/repl_darwin.go b/ethereum/repl_darwin.go
index 1b98c2150028a65809931d441ab0abefd3e09c1d..fa36b0d526de11eaeb068990141ad286344687a9 100644
--- a/ethereum/repl_darwin.go
+++ b/ethereum/repl_darwin.go
@@ -1,17 +1,42 @@
 package main
 
+// #cgo darwin CFLAGS: -I/usr/local/opt/readline/include
+// #cgo darwin LDFLAGS: -L/usr/local/opt/readline/lib
 // #cgo LDFLAGS: -lreadline
 // #include <stdio.h>
 // #include <stdlib.h>
 // #include <readline/readline.h>
 // #include <readline/history.h>
 import "C"
-
 import (
+	"os"
+	"os/signal"
 	"strings"
+	"syscall"
 	"unsafe"
 )
 
+func initReadLine() {
+	C.rl_catch_sigwinch = 0
+	C.rl_catch_signals = 0
+	c := make(chan os.Signal, 1)
+	signal.Notify(c, syscall.SIGWINCH)
+	signal.Notify(c, os.Interrupt)
+	go func() {
+		for sig := range c {
+			switch sig {
+			case syscall.SIGWINCH:
+				C.rl_resize_terminal()
+
+			case os.Interrupt:
+				C.rl_cleanup_after_signal()
+			default:
+
+			}
+		}
+	}()
+}
+
 func readLine(prompt *string) *string {
 	var p *C.char
 
@@ -59,6 +84,7 @@ func (self *JSRepl) setIndent() {
 }
 
 func (self *JSRepl) read() {
+	initReadLine()
 L:
 	for {
 		switch result := readLine(&self.prompt); true {
diff --git a/utils/cmd.go b/utils/cmd.go
index 28597194ff223cb6d41b3362a8e235d111891e55..f8b7b5fe2170deb6072ac8f3fd1c6bd7da81ef86 100644
--- a/utils/cmd.go
+++ b/utils/cmd.go
@@ -19,6 +19,8 @@ func DoRpc(ethereum *eth.Ethereum, RpcPort int) {
 	}
 }
 
+var miner ethminer.Miner
+
 func DoMining(ethereum *eth.Ethereum) {
 	// Set Mining status
 	ethereum.Mining = true
@@ -31,6 +33,10 @@ func DoMining(ethereum *eth.Ethereum) {
 	addr := keyPair.Address()
 
 	go func() {
+		ethutil.Config.Log.Infoln("Miner started")
+
+		miner = ethminer.NewDefaultMiner(addr, ethereum)
+
 		// Give it some time to connect with peers
 		time.Sleep(3 * time.Second)
 
@@ -44,3 +50,27 @@ func DoMining(ethereum *eth.Ethereum) {
 		miner.Start()
 	}()
 }
+
+func StopMining(ethereum *eth.Ethereum) bool {
+	if ethereum.Mining {
+		miner.Stop()
+
+		ethutil.Config.Log.Infoln("Miner stopped")
+
+		ethereum.Mining = false
+
+		return true
+	}
+
+	return false
+}
+
+func StartMining(ethereum *eth.Ethereum) bool {
+	if !ethereum.Mining {
+		DoMining(ethereum)
+
+		return true
+	}
+
+	return false
+}