diff --git a/server.py b/server.py
index f5325b629c7db67039cdedcbacdb631f132d038b..0a78f57c897ac77f7e1b2bf5825629aa7642d0dc 100644
--- a/server.py
+++ b/server.py
@@ -604,6 +604,7 @@ class ClientThread(Thread):
 				utils.logprint("Peer detection: Network error:  "+peer.to_human_str(), utils.LOG_WARN)
 		
 		# Choose the more recent peer infos
+		added_peers = False
 		for peer in new_peers:
 			new_peer = max(new_peers[peer], key=lambda p: p.sigtime) # select the more recent
 			
@@ -612,9 +613,22 @@ class ClientThread(Thread):
 				utils.logprint("Peer detection: too old sig", utils.LOG_TRACE)
 				continue
 			self.peers[peer] = new_peer
+			added_peers = True
 			utils.logprint("Peer: "+new_peer.to_human_str(), utils.LOG_TRACE)
 		
 		utils.logprint("Finished peers detection", utils.LOG_TRACE)
+		
+		# Remove old peers
+		if added_peers:
+			t = time.time() - self.conf["server"]["peer_sig_age_max"]
+			to_remove = []
+			for peer in self.peers:
+				if self.peers[peer].sigtime < t:
+					to_remove.append(peer)
+			
+			for peer in to_remove:
+				utils.logprint("Remove old peer: "+self.peers[peer].to_human_str(), utils.LOG_TRACE)
+				self.peers.pop(peer)
 	
 	def spread_peer_info(self):
 		utils.logprint("Start spreading peer info", utils.LOG_TRACE)
@@ -832,6 +846,7 @@ def main():
 	peers = {}
 	db_peers = plyvel.DB(DIR+"/db_peers", create_if_missing=True)
 	utils.load_peers(conf, db_peers, peers)
+	utils.logprint("Loaded " + str(len(peers)) + " peers", utils.LOG_TRACE)
 	
 	# Load txs
 	pool = []