diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 20fe3cef11..0a1a226c36 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -924,13 +924,17 @@ namespace OpenSim.Region.Framework.Scenes string uuid = reader.GetAttribute("UUID"); + // Even if there is no UUID attribute for some strange reason, we must always read the inner XML + // so we don't continually keep checking the same SavedScriptedState element. + string innerXml = reader.ReadInnerXml(); + if (uuid != null) { // m_log.DebugFormat("[SCENE OBJECT GROUP]: Found state for item ID {0} in object {1}", uuid, Name); UUID itemid = new UUID(uuid); if (itemid != UUID.Zero) - m_savedScriptState[itemid] = reader.ReadInnerXml(); + m_savedScriptState[itemid] = innerXml; } else {