Index: Primitive.cs
===================================================================
--- Primitive.cs	(revision 2436)
+++ Primitive.cs	(working copy)
@@ -1122,7 +1122,11 @@
             RegionHandle = prim.RegionHandle;
             Flags = prim.Flags;
             if (prim.GenericData != null)
+			{
+				if(GenericData == null || GenericData.Length < prim.GenericData.Length)
+					GenericData = new byte[prim.GenericData.Length];
                 Buffer.BlockCopy(prim.GenericData, 0, GenericData, 0, prim.GenericData.Length);
+			}
             else
                 GenericData = null;
             Position = prim.Position;
@@ -1147,9 +1151,11 @@
             Joint = prim.Joint;
             JointPivot = prim.JointPivot;
             JointAxisOrAnchor = prim.JointAxisOrAnchor;
-            if (prim.NameValues != null)
+            if (prim.NameValues != null) {
+				if(NameValues == null || NameValues.Length < prim.NameValues.Length)
+					NameValues = new NameValue[prim.NameValues.Length];
                 Array.Copy(prim.NameValues, NameValues, prim.NameValues.Length);
-            else
+			} else
                 NameValues = null;
             PrimData = prim.PrimData;
             Properties = prim.Properties;

