diff --git a/xeth/hexface.go b/xeth/hexface.go
index c1f49453d75dfb94cc3c9f22fd9b75860557f7ca..524b68210371b2af996219fd047630ed3a1e6ac2 100644
--- a/xeth/hexface.go
+++ b/xeth/hexface.go
@@ -3,7 +3,6 @@ package xeth
 import (
 	"bytes"
 	"encoding/json"
-	"sync/atomic"
 
 	"github.com/ethereum/go-ethereum/core"
 	"github.com/ethereum/go-ethereum/core/types"
@@ -63,12 +62,8 @@ func (self *JSXEth) PeerCount() int {
 
 func (self *JSXEth) Peers() []JSPeer {
 	var peers []JSPeer
-	for peer := self.obj.Peers().Front(); peer != nil; peer = peer.Next() {
-		p := peer.Value.(core.Peer)
-		// we only want connected peers
-		if atomic.LoadInt32(p.Connected()) != 0 {
-			peers = append(peers, *NewJSPeer(p))
-		}
+	for _, peer := range self.obj.Peers() {
+		peers = append(peers, *NewJSPeer(peer))
 	}
 
 	return peers
diff --git a/xeth/js_types.go b/xeth/js_types.go
index da26439cfd563be390ea200ae3232e4e852e4769..1d9faa1901379ea311e6a51da411e4371556700d 100644
--- a/xeth/js_types.go
+++ b/xeth/js_types.go
@@ -1,14 +1,13 @@
 package xeth
 
 import (
-	"fmt"
-	"strconv"
 	"strings"
 
 	"github.com/ethereum/go-ethereum/core"
 	"github.com/ethereum/go-ethereum/core/types"
 	"github.com/ethereum/go-ethereum/crypto"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/p2p"
 	"github.com/ethereum/go-ethereum/state"
 )
 
@@ -155,38 +154,36 @@ func NewPReciept(contractCreation bool, creationAddress, hash, address []byte) *
 // Peer interface exposed to QML
 
 type JSPeer struct {
-	ref          *core.Peer
-	Inbound      bool   `json:"isInbound"`
-	LastSend     int64  `json:"lastSend"`
-	LastPong     int64  `json:"lastPong"`
-	Ip           string `json:"ip"`
-	Port         int    `json:"port"`
-	Version      string `json:"version"`
-	LastResponse string `json:"lastResponse"`
-	Latency      string `json:"latency"`
-	Caps         string `json:"caps"`
-}
-
-func NewJSPeer(peer core.Peer) *JSPeer {
-	if peer == nil {
-		return nil
-	}
-
-	var ip []string
-	for _, i := range peer.Host() {
-		ip = append(ip, strconv.Itoa(int(i)))
-	}
-	ipAddress := strings.Join(ip, ".")
-
-	var caps []string
-	capsIt := peer.Caps().NewIterator()
-	for capsIt.Next() {
-		cap := capsIt.Value().Get(0).Str()
-		ver := capsIt.Value().Get(1).Uint()
-		caps = append(caps, fmt.Sprintf("%s/%d", cap, ver))
-	}
-
-	return &JSPeer{ref: &peer, Inbound: peer.Inbound(), LastSend: peer.LastSend().Unix(), LastPong: peer.LastPong(), Version: peer.Version(), Ip: ipAddress, Port: int(peer.Port()), Latency: peer.PingTime(), Caps: "[" + strings.Join(caps, ", ") + "]"}
+	ref *p2p.Peer
+	// Inbound      bool   `json:"isInbound"`
+	// LastSend     int64  `json:"lastSend"`
+	// LastPong     int64  `json:"lastPong"`
+	// Ip           string `json:"ip"`
+	// Port         int    `json:"port"`
+	// Version      string `json:"version"`
+	// LastResponse string `json:"lastResponse"`
+	// Latency      string `json:"latency"`
+	// Caps         string `json:"caps"`
+}
+
+func NewJSPeer(peer *p2p.Peer) *JSPeer {
+
+	// var ip []string
+	// for _, i := range peer.Host() {
+	//   ip = append(ip, strconv.Itoa(int(i)))
+	// }
+	// ipAddress := strings.Join(ip, ".")
+
+	// var caps []string
+	// capsIt := peer.Caps().NewIterator()
+	// for capsIt.Next() {
+	//   cap := capsIt.Value().Get(0).Str()
+	//   ver := capsIt.Value().Get(1).Uint()
+	//   caps = append(caps, fmt.Sprintf("%s/%d", cap, ver))
+	// }
+
+	return &JSPeer{ref: peer}
+	// return &JSPeer{ref: &peer, Inbound: peer.Inbound(), LastSend: peer.LastSend().Unix(), LastPong: peer.LastPong(), Version: peer.Version(), Ip: ipAddress, Port: int(peer.Port()), Latency: peer.PingTime(), Caps: "[" + strings.Join(caps, ", ") + "]"}
 }
 
 type JSReceipt struct {
diff --git a/xeth/world.go b/xeth/world.go
index 956ef1e15fbd6f69230e7aecbe81a0f0f094a572..008a084234c7b54d518dd0c69076c1c1054925c3 100644
--- a/xeth/world.go
+++ b/xeth/world.go
@@ -1,8 +1,7 @@
 package xeth
 
 import (
-	"container/list"
-
+	"github.com/ethereum/go-ethereum/p2p"
 	"github.com/ethereum/go-ethereum/state"
 )
 
@@ -55,7 +54,7 @@ func (self *World) IsListening() bool {
 	return self.pipe.obj.IsListening()
 }
 
-func (self *World) Peers() *list.List {
+func (self *World) Peers() []*p2p.Peer {
 	return self.pipe.obj.Peers()
 }