diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs index 75019678f0..c0e67223b1 100644 --- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs +++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs @@ -102,8 +102,13 @@ namespace OpenSim.Region.Communications.Local else { // Already in our list, so the region went dead and restarted. - // replace the old regioninfo - m_regions[regionInfo.RegionHandle] = regionInfo; + // don't replace the old regioninfo.. this might be a locking issue.. however we need to + // remove it and let it add normally below or we get extremely strange and intermittant + // connectivity errors. + // Don't change this line below to 'm_regions[regionInfo.RegionHandle] = regionInfo' unless you + // *REALLY* know what you are doing here. + m_regions.Remove(regionInfo.RegionHandle); + m_log.Warn("[INTERREGION STANDALONE]: Region registered twice. Region went down and came back up."); RegionCommsListener regionHost = new RegionCommsListener();