diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml
index c783cde830285a64bc1750057e0e951b3ef59539..afb210bec99fa046162188fd99d3e2c3a8c56eea 100644
--- a/ethereal/assets/qml/wallet.qml
+++ b/ethereal/assets/qml/wallet.qml
@@ -419,6 +419,17 @@ ApplicationWindow {
 			}
 		}
 
+        ProgressBar {
+            id: syncProgressIndicator
+            visible: false
+            objectName: "syncProgressIndicator"
+            y: 3
+            width: 140
+            indeterminate: true
+            anchors.right: peerLabel.left
+            anchors.rightMargin: 5
+        }
+
 		Label {
 			y: 7
 			anchors.right: peerImage.left
@@ -443,6 +454,7 @@ ApplicationWindow {
 	Window {
 		id: popup
 		visible: false
+        flags: Qt.CustomizeWindowHint | Qt.Tool | Qt.WindowCloseButtonHint
 		property var block
 		width: root.width
 		height: 300
@@ -577,6 +589,7 @@ ApplicationWindow {
 
 	Window {
 		id: addPeerWin
+        flags: Qt.CustomizeWindowHint | Qt.Tool | Qt.WindowCloseButtonHint
 		visible: false
 		minimumWidth: 230
 		maximumWidth: 230
@@ -743,6 +756,7 @@ ApplicationWindow {
 	// ******************************************
 	Window {
 		id: peerWindow
+        flags: Qt.CustomizeWindowHint | Qt.Tool | Qt.WindowCloseButtonHint
 		height: 200
 		width: 700
 		Rectangle {
diff --git a/ethereal/gui.go b/ethereal/gui.go
index 39677c38fda17349b6955f8ff5338af85a4a1e61..f777f64f7ee84bdcb91ec2a62fe38a36e6e49dbb 100644
--- a/ethereal/gui.go
+++ b/ethereal/gui.go
@@ -266,14 +266,18 @@ func (gui *Gui) setWalletValue(amount, unconfirmedFunds *big.Int) {
 func (gui *Gui) update() {
 	reactor := gui.eth.Reactor()
 
-	blockChan := make(chan ethutil.React, 1)
-	txChan := make(chan ethutil.React, 1)
-	objectChan := make(chan ethutil.React, 1)
-	peerChan := make(chan ethutil.React, 1)
+	var (
+		blockChan     = make(chan ethutil.React, 1)
+		txChan        = make(chan ethutil.React, 1)
+		objectChan    = make(chan ethutil.React, 1)
+		peerChan      = make(chan ethutil.React, 1)
+		chainSyncChan = make(chan ethutil.React, 1)
+	)
 
 	reactor.Subscribe("newBlock", blockChan)
 	reactor.Subscribe("newTx:pre", txChan)
 	reactor.Subscribe("newTx:post", txChan)
+	reactor.Subscribe("chainSync", chainSyncChan)
 
 	nameReg := ethpub.EthereumConfig(gui.eth.StateManager()).NameReg()
 	if nameReg != nil {
@@ -287,6 +291,7 @@ func (gui *Gui) update() {
 
 	unconfirmedFunds := new(big.Int)
 	gui.win.Root().Call("setWalletValue", fmt.Sprintf("%v", ethutil.CurrencyToString(state.GetAccount(gui.address()).Amount)))
+	gui.win.Root().ObjectByName("syncProgressIndicator").Set("visible", !gui.eth.IsUpToDate())
 
 	for {
 		select {
@@ -328,6 +333,10 @@ func (gui *Gui) update() {
 
 				state.UpdateStateObject(object)
 			}
+		case msg := <-chainSyncChan:
+			sync := msg.Resource.(bool)
+			gui.win.Root().ObjectByName("syncProgressIndicator").Set("visible", sync)
+
 		case <-objectChan:
 			gui.loadAddressBook()
 		case <-peerChan: