diff --git a/src/universe.cpp b/src/universe.cpp
index bbfdd41c12e7a638e5a8378ae3940e59e2c03be6..3234336264415b63512c263059fce9284fe82b22 100644
--- a/src/universe.cpp
+++ b/src/universe.cpp
@@ -444,7 +444,16 @@ void Universe::_periodic() {
 			if (removed) continue;
 		}
 
-		if ((*i).peer->reconnect()) {
+		auto peer = i->peer;
+		_insertPeer(peer);
+		i = reconnects_.erase(i);
+		ftl::pool.push([peer](int id) {
+			if (!peer->reconnect()) {
+				LOG(INFO) << "Reconnect failed";
+			}
+		});
+
+		/*if ((*i).peer->reconnect()) {
 			_insertPeer((*i).peer);
 			i = reconnects_.erase(i);
 		}
@@ -455,7 +464,7 @@ void Universe::_periodic() {
 		 else {
 			garbage_.push_back((*i).peer);
 			i = reconnects_.erase(i);
-		}
+		}*/
 	}
 }