diff --git a/OpenMetaverse/ImportExport/ColladalLoader.cs b/OpenMetaverse/ImportExport/ColladalLoader.cs index 1dfe4d86..bed2570c 100644 --- a/OpenMetaverse/ImportExport/ColladalLoader.cs +++ b/OpenMetaverse/ImportExport/ColladalLoader.cs @@ -603,12 +603,15 @@ namespace OpenMetaverse.ImportExport ModelFace face = new ModelFace(); face.MaterialID = list.material; - if (MatSymTarget.ContainsKey(list.material)) + if (face.MaterialID != null) { - ModelMaterial mat = Materials.Find(m => m.ID == MatSymTarget[list.material]); - if (mat != null) + if (MatSymTarget.ContainsKey(list.material)) { - face.Material = mat; + ModelMaterial mat = Materials.Find(m => m.ID == MatSymTarget[list.material]); + if (mat != null) + { + face.Material = mat; + } } } diff --git a/OpenMetaverse/ImportExport/ModelUploader.cs b/OpenMetaverse/ImportExport/ModelUploader.cs index d99ce996..59e708c9 100644 --- a/OpenMetaverse/ImportExport/ModelUploader.cs +++ b/OpenMetaverse/ImportExport/ModelUploader.cs @@ -188,7 +188,19 @@ namespace OpenMetaverse.ImportExport { var res = (OSDMap)result; Uri uploader = new Uri(res["uploader"]); - PerformUpload(uploader, callback); + PerformUpload(uploader, (contents => + { + if (contents != null) + { + var reply = (OSDMap)contents; + if (reply.ContainsKey("new_inventory_item") && reply.ContainsKey("new_asset")) + { + // Request full update on the item in order to update the local store + Client.Inventory.RequestFetchInventory(reply["new_inventory_item"].AsUUID(), Client.Self.AgentID); + } + } + if (callback != null) callback(contents); + })); } }));