diff --git a/src/api/server_server.rs b/src/api/server_server.rs
index c9069fa1c789a46faeeaac016ab2dcf956977756..e4afa2a1868869858c21fcbcadad1c9a5764e747 100644
--- a/src/api/server_server.rs
+++ b/src/api/server_server.rs
@@ -352,22 +352,22 @@ pub(crate) async fn send_transaction_message_route(
 				}
 
 				for (room_id, room_updates) in receipt.receipts {
+					if services()
+						.rooms
+						.event_handler
+						.acl_check(origin, &room_id)
+						.is_err()
+					{
+						debug_warn!(%origin, %room_id, "received read receipt EDU from ACL'd server");
+						continue;
+					}
+
 					for (user_id, user_updates) in room_updates.read {
 						if user_id.server_name() != origin {
 							debug_warn!(%user_id, %origin, "received read receipt EDU for user not belonging to origin");
 							continue;
 						}
 
-						if services()
-							.rooms
-							.event_handler
-							.acl_check(user_id.server_name(), &room_id)
-							.is_err()
-						{
-							debug_warn!(%user_id, %room_id, "received read receipt EDU from ACL'd user's server");
-							continue;
-						}
-
 						if services().rooms.state_cache.is_joined(&user_id, &room_id)? {
 							if let Some((event_id, _)) = user_updates
 								.event_ids