diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index edb76e9c74..eb7ad332f9 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -386,6 +386,9 @@ namespace OpenSim.Region.Environment.Scenes
UpdateParentIDs();
}
+ ///
+ /// Hooks this object up to the backup event so that it is persisted to the database when the update thread executes.
+ ///
private void AttachToBackup()
{
if (InSceneBackup)
@@ -550,7 +553,7 @@ namespace OpenSim.Region.Environment.Scenes
#region Copying
///
- ///
+ /// Duplicates this object, including operations such as physics set up and attaching to the backup event.
///
///
public SceneObjectGroup Copy(LLUUID cAgentID, LLUUID cGroupID)
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
index f7e82a5c26..56894b7025 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
@@ -90,13 +90,22 @@ namespace OpenSim.Region.Environment.Scenes
///
/// Reset LLUUIDs for all the items in the prim's inventory. This involves either generating
- /// new ones or setting existing UUIDs to the correct parent UUIDs
+ /// new ones or setting existing UUIDs to the correct parent UUIDs.
+ ///
+ /// If this method is called and there are inventory items, then we regard the inventory as having changed.
///
/// Link number for the part
public void ResetInventoryIDs()
{
lock (TaskInventory)
- {
+ {
+ if (0 == TaskInventory.Count)
+ {
+ return;
+ }
+
+ HasInventoryChanged = true;
+
IList items = new List(TaskInventory.Values);
TaskInventory.Clear();