diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index d76ed3e6d5..58a7b2045b 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -204,13 +204,10 @@ namespace OpenSim.Region.Framework.Scenes
///
public void SendCloseChildAgentConnections(UUID agentID, List regionslst)
{
- Util.FireAndForget(delegate
+ foreach (ulong handle in regionslst)
{
- foreach (ulong handle in regionslst)
- {
- SendCloseChildAgent(agentID, handle);
- }
- });
+ SendCloseChildAgent(agentID, handle);
+ }
}
public List RequestNamedRegions(string name, int maxNumber)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 800b7e0597..b16eaba4de 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2955,7 +2955,10 @@ namespace OpenSim.Region.Framework.Scenes
if (byebyeRegions.Count > 0)
{
m_log.Debug("[SCENE PRESENCE]: Closing " + byebyeRegions.Count + " child agents");
- m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, byebyeRegions);
+ Util.FireAndForget(delegate
+ {
+ m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, byebyeRegions);
+ });
}
foreach (ulong handle in byebyeRegions)