diff --git a/node/Multicaster.cpp b/node/Multicaster.cpp
index c5cf456b7..9845c6cdb 100644
--- a/node/Multicaster.cpp
+++ b/node/Multicaster.cpp
@@ -345,6 +345,9 @@ void Multicaster::send(
 				data,
 				len);
 
+			if (origin)
+				out.logAsSent(origin);
+
 			unsigned int count = 0;
 
 			for(unsigned int i=0;i<activeBridgeCount;++i) {
diff --git a/node/OutboundMulticast.hpp b/node/OutboundMulticast.hpp
index 836b840b4..a735f52b6 100644
--- a/node/OutboundMulticast.hpp
+++ b/node/OutboundMulticast.hpp
@@ -125,6 +125,16 @@ public:
 		sendOnly(RR,tPtr,toAddr);
 	}
 
+	/**
+	 * Log an address as having been used so we will not send there in the future
+	 *
+	 * @param toAddr Address to log as sent
+	 */
+	inline void logAsSent(const Address &toAddr)
+	{
+		_alreadySentTo.push_back(toAddr);
+	}
+
 	/**
 	 * Try to send this to a given peer if it hasn't been sent to them already
 	 *