diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 1d15d616f5..674144bc23 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -1018,11 +1018,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; part.CollisionSound = UUID.Zero; AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); + + m_TimerQueued = false; + m_StateChangeInProgress = false; EventQueue.Clear(); + m_Script.ResetVars(); StartParam = 0; State = "default"; + part.SetScriptEvents(ItemID, (int)m_Script.GetStateEventFlags(State)); if (running) @@ -1049,6 +1054,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance part.CollisionSound = UUID.Zero; AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); + m_TimerQueued = false; + m_StateChangeInProgress = false; EventQueue.Clear(); m_Script.ResetVars(); string oldState = State;