diff --git a/ethereum.go b/ethereum.go
index 729f819266e5c51b32976f2380b378915615f540..4cf1ce9e7ccb0af3db8944c0f30ecb77650ef724 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -399,9 +399,7 @@ func (s *Ethereum) Start(seed bool) {
 }
 
 func (s *Ethereum) Seed() {
-	var ips []string
-	data, _ := ethutil.ReadAllFile(path.Join(ethutil.Config.ExecPath, "known_peers.json"))
-	json.Unmarshal([]byte(data), &ips)
+	ips := PastPeers()
 	if len(ips) > 0 {
 		for _, ip := range ips {
 			ethlogger.Infoln("Connecting to previous peer ", ip)
@@ -473,8 +471,11 @@ func (s *Ethereum) Stop() {
 	eachPeer(s.peers, func(p *Peer, e *list.Element) {
 		ips = append(ips, p.conn.RemoteAddr().String())
 	})
-	d, _ := json.MarshalIndent(ips, "", "    ")
-	ethutil.WriteFile(path.Join(ethutil.Config.ExecPath, "known_peers.json"), d)
+
+	if len(ips) > 0 {
+		d, _ := json.MarshalIndent(ips, "", "    ")
+		ethutil.WriteFile(path.Join(ethutil.Config.ExecPath, "known_peers.json"), d)
+	}
 
 	eachPeer(s.peers, func(p *Peer, e *list.Element) {
 		p.Stop()
@@ -620,3 +621,11 @@ func bootstrapDb(db ethutil.Database) {
 		db.Put([]byte("ProtocolVersion"), ethutil.NewValue(ProtocolVersion).Bytes())
 	}
 }
+
+func PastPeers() []string {
+	var ips []string
+	data, _ := ethutil.ReadAllFile(path.Join(ethutil.Config.ExecPath, "known_peers.json"))
+	json.Unmarshal([]byte(data), &ips)
+
+	return ips
+}