- // If the source of this SERVER message is not bursting, then new servers it introduces are bursting
- TreeServer* server = TreeServer::Get(who);
- if (!server->IsBursting())
+ // If the source of this SERVER message or any of its parents are bursting, then new servers it
+ // introduces are not bursting.
+ bool bursting = false;
+ for (TreeServer* server = TreeServer::Get(who); server; server = server->GetParent())
+ {
+ if (server->IsBursting())
+ {
+ bursting = true;
+ break;
+ }
+ }
+
+ if (!bursting)