diff --git a/ethereal/assets/qml/views/chain.qml b/ethereal/assets/qml/views/chain.qml
index 270018eb2d0b72ee97864db4478b631c516526c7..9fbc029542b0ba2e0b60c986008738edcadaa476 100644
--- a/ethereal/assets/qml/views/chain.qml
+++ b/ethereal/assets/qml/views/chain.qml
@@ -73,6 +73,13 @@ Rectangle {
 
 			MenuSeparator{}
 
+			MenuItem {
+				text: "Copy"
+				onTriggered: {
+					copyToClipboard(blockModel.get(this.row).hash)
+				}
+			}
+
 			MenuItem {
 				text: "Dump State"
 				onTriggered: {
diff --git a/ethereal/assets/qml/views/info.qml b/ethereal/assets/qml/views/info.qml
index 3335a306ad7083329a7a7b6d27604d51158d52c9..60b6a62ec5ea14f0d30bddfa93fbccf76a45ccab 100644
--- a/ethereal/assets/qml/views/info.qml
+++ b/ethereal/assets/qml/views/info.qml
@@ -57,6 +57,47 @@ Rectangle {
 		TableViewColumn{ role: "address"; title: "address"; width: 300}
 
 		model: addressModel
+		itemDelegate: Item {
+			Text {
+				anchors {
+					left: parent.left
+					right: parent.right
+					leftMargin: 10
+					verticalCenter: parent.verticalCenter
+				}
+				color: styleData.textColor
+				elide: styleData.elideMode
+				text: styleData.value
+				font.pixelSize: 11
+				MouseArea {
+					acceptedButtons: Qt.LeftButton | Qt.RightButton
+					propagateComposedEvents: true
+					anchors.fill: parent
+					onClicked: {
+						addressView.selection.clear()
+						addressView.selection.select(styleData.row)
+
+						if(mouse.button == Qt.RightButton) {
+							contextMenu.row = styleData.row;
+							contextMenu.popup()
+						}
+					}
+				}
+			}
+
+		}
+
+		Menu {
+			id: contextMenu
+			property var row;
+
+			MenuItem {
+				text: "Copy"
+				onTriggered: {
+					copyToClipboard(addressModel.get(this.row).address)
+				}
+			}
+		}
 	}
 
 	property var logModel: ListModel {
diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml
index 30e1071f7e5a8e74901eaea9fbb7c7325e388817..45514f7c1c482f273bb9b44a88aed64d5451e7c6 100644
--- a/ethereal/assets/qml/wallet.qml
+++ b/ethereal/assets/qml/wallet.qml
@@ -17,6 +17,17 @@ ApplicationWindow {
 
 	title: "Ethereal"
 
+	TextField {
+		id: copyElementHax
+		visible: false
+	}
+
+	function copyToClipboard(text) {
+		copyElementHax.text = text
+		copyElementHax.selectAll()
+		copyElementHax.copy()
+	}
+
 	// Takes care of loading all default plugins
 	Component.onCompleted: {
 		var historyView = addPlugin("./views/history.qml", {title: "History"})
diff --git a/ethereal/gui.go b/ethereal/gui.go
index 6149b39b77ec70c57c9b1bb0870927e3b446650c..7a36a8b023300e5fb53df18bae39b387e8ad97df 100644
--- a/ethereal/gui.go
+++ b/ethereal/gui.go
@@ -482,6 +482,11 @@ func (gui *Gui) update() {
 	reactor.Subscribe("peerList", peerChan)
 }
 
+func (gui *Gui) CopyToClipboard(data string) {
+	//clipboard.WriteAll("test")
+	fmt.Println("COPY currently BUGGED. Here are the contents:\n", data)
+}
+
 func (gui *Gui) setPeerInfo() {
 	gui.win.Root().Call("setPeers", fmt.Sprintf("%d / %d", gui.eth.PeerCount(), gui.eth.MaxPeers))