diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index f5b98256cf..81477e7a42 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -176,16 +176,14 @@ namespace OpenSim.Region.Framework.Scenes
///
public void ChangeInventoryOwner(UUID ownerId)
{
- m_items.LockItemsForWrite(true);
- if (0 == Items.Count)
- {
- m_items.LockItemsForWrite(false);
- return;
- }
+ List items = GetInventoryItems();
+ if (items.Count == 0)
+ return;
+
+ m_items.LockItemsForWrite(true);
HasInventoryChanged = true;
m_part.ParentGroup.HasGroupChanged = true;
- List items = GetInventoryItems();
foreach (TaskInventoryItem item in items)
{
if (ownerId != item.OwnerID)
@@ -766,8 +764,8 @@ namespace OpenSim.Region.Framework.Scenes
{
if (item.Name == name)
{
- return item;
m_items.LockItemsForRead(false);
+ return item;
}
}
m_items.LockItemsForRead(false);