diff --git a/OpenSim/Framework/Monitoring/Watchdog.cs b/OpenSim/Framework/Monitoring/Watchdog.cs index 0cab427a10..4485a9c501 100644 --- a/OpenSim/Framework/Monitoring/Watchdog.cs +++ b/OpenSim/Framework/Monitoring/Watchdog.cs @@ -335,7 +335,9 @@ namespace OpenSim.Framework.Monitoring lock (m_threads) { - foreach (ThreadWatchdogInfo threadInfo in m_threads.Values) + // get a copy since we may change m_threads + List threadsInfo = m_threads.Values.ToList(); + foreach (ThreadWatchdogInfo threadInfo in threadsInfo) { if (threadInfo.Thread.ThreadState == ThreadState.Stopped) {