diff --git a/synapse/federation/replication.py b/synapse/federation/replication.py
index 8030d0963fae6580208d5db70aaa88f2ebb1885b..cf634a64b2f94d8d7e1641c6d2a5437c4568a56e 100644
--- a/synapse/federation/replication.py
+++ b/synapse/federation/replication.py
@@ -509,10 +509,10 @@ class _TransactionQueue(object):
         # a transaction in progress. If we do, stick it in the pending_pdus
         # table and we'll get back to it later.
 
-        destinations = [
+        destinations = set([
             d for d in pdu.destinations
             if d != self.server_name
-        ]
+        ])
 
         logger.debug("Sending to: %s", str(destinations))