diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index 7d3a168f03..795da3f3f4 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs @@ -1671,7 +1671,8 @@ namespace OpenSim.Region.Framework.Scenes.Serialization writer.WriteElementString("ProfileBegin", shp.ProfileBegin.ToString()); writer.WriteElementString("ProfileEnd", shp.ProfileEnd.ToString()); writer.WriteElementString("ProfileHollow", shp.ProfileHollow.ToString()); - writer.WriteElementString("State", shp.State.ToString()); + // There's no such thing as a primitive with state != 0 (attachment) + writer.WriteElementString("State", (shp.PCode == (byte)PCodeEnum.Primitive ? "0" : shp.State.ToString())); writer.WriteElementString("LastAttachPoint", shp.LastAttachPoint.ToString()); WriteFlags(writer, "ProfileShape", shp.ProfileShape.ToString(), options); @@ -1799,6 +1800,10 @@ namespace OpenSim.Region.Framework.Scenes.Serialization reader.ReadEndElement(); // Shape + if (shape.PCode == (byte)PCodeEnum.Primitive && shape.State != 0) + // This should not happen! + shape.State = 0; + errorNodeNames = internalErrorNodeNames; return shape;