diff --git a/lib/vines/stream/server.rb b/lib/vines/stream/server.rb
index <HASH>..<HASH> 100644
--- a/lib/vines/stream/server.rb
+++ b/lib/vines/stream/server.rb
@@ -109,7 +109,7 @@ module Vines
         raise StreamErrors::UnsupportedVersion unless node['version'] == '1.0'
         raise StreamErrors::ImproperAddressing unless valid_address?(@domain) && valid_address?(@remote_domain)
         raise StreamErrors::HostUnknown unless config.vhost?(@domain)
-        raise StreamErrors::NotAuthorized unless config.s2s?(@remote_domain)
+        raise StreamErrors::NotAuthorized unless config.s2s?(@remote_domain) && config.allowed?(@domain, @remote_domain)
         raise StreamErrors::InvalidNamespace unless node.namespaces['xmlns'] == NAMESPACES[:server]
         raise StreamErrors::InvalidNamespace unless node.namespaces['xmlns:stream'] == NAMESPACES[:stream]
       end
Check whether the destination domain allows cross_domain_messages before accepting a s2s stream. There's no point in accepting the connection when every packet sent over it is ignored.