diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml
index ac48e32a117f7391942c5adc4638d33ea7b18859..7bcdc16107af135797469474c787c3752b21d9ec 100644
--- a/ethereal/assets/qml/webapp.qml
+++ b/ethereal/assets/qml/webapp.qml
@@ -103,7 +103,7 @@ ApplicationWindow {
 						uri.replace(reg, function(match, pre, domain, path) {
 							uri = pre;
 
-							var lookup = eth.lookupDomain(domain.substring(0, domain.length - 4));
+							var lookup = ui.lookupDomain(domain.substring(0, domain.length - 4));
 							var ip = [];
 							for(var i = 0, l = lookup.length; i < l; i++) {
 								ip.push(lookup.charCodeAt(i))
diff --git a/ethereal/main.go b/ethereal/main.go
index 393308d00ce8eb3e8bef9cc5fbad82ee8f5d2fa2..47f6144fae8751c7ee99690f41a152ea5831f408 100644
--- a/ethereal/main.go
+++ b/ethereal/main.go
@@ -12,7 +12,7 @@ import (
 
 const (
 	ClientIdentifier = "Ethereal"
-	Version          = "0.6.1"
+	Version          = "0.6.2"
 )
 
 var ethereum *eth.Ethereum
diff --git a/ethereal/ui_lib.go b/ethereal/ui_lib.go
index 9220581cdd12fb0ffb0e91265a585ecc2358494b..ade9bf381597a3fa6b1d6c54ec6d5e43082e2da6 100644
--- a/ethereal/ui_lib.go
+++ b/ethereal/ui_lib.go
@@ -1,11 +1,15 @@
 package main
 
 import (
+	"bytes"
 	"fmt"
 	"path"
+	"strconv"
+	"strings"
 
 	"github.com/ethereum/eth-go"
 	"github.com/ethereum/eth-go/ethchain"
+	"github.com/ethereum/eth-go/ethcrypto"
 	"github.com/ethereum/eth-go/ethpipe"
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/ethereum/go-ethereum/javascript"
@@ -36,6 +40,30 @@ func NewUiLib(engine *qml.Engine, eth *eth.Ethereum, assetPath string) *UiLib {
 	return &UiLib{JSPipe: ethpipe.NewJSPipe(eth), engine: engine, eth: eth, assetPath: assetPath, jsEngine: javascript.NewJSRE(eth)}
 }
 
+func (self *UiLib) LookupDomain(domain string) string {
+	world := self.World()
+
+	if len(domain) > 32 {
+		domain = string(ethcrypto.Sha3Bin([]byte(domain)))
+	}
+	data := world.Config().Get("DnsReg").StorageString(domain).Bytes()
+
+	// Left padded = A record, Right padded = CNAME
+	if data[0] == 0 {
+		data = bytes.TrimLeft(data, "\x00")
+		var ipSlice []string
+		for _, d := range data {
+			ipSlice = append(ipSlice, strconv.Itoa(int(d)))
+		}
+
+		return strings.Join(ipSlice, ".")
+	} else {
+		data = bytes.TrimRight(data, "\x00")
+
+		return string(data)
+	}
+}
+
 func (self *UiLib) ImportTx(rlpTx string) {
 	tx := ethchain.NewTransactionFromBytes(ethutil.Hex2Bytes(rlpTx))
 	self.eth.TxPool().QueueTransaction(tx)
diff --git a/ethereum/main.go b/ethereum/main.go
index 17838997c4b77d5ea748b98867f5062fbb79cada..6c5c71bf3a71293b17712b0ea177d16e7c4cb613 100644
--- a/ethereum/main.go
+++ b/ethereum/main.go
@@ -13,7 +13,7 @@ import (
 
 const (
 	ClientIdentifier = "Ethereum(G)"
-	Version          = "0.6.1"
+	Version          = "0.6.2"
 )
 
 var logger = ethlog.NewLogger("CLI")