             value = existing;
         }
         
-        // are we just being asked to point at something?
-        if ((result[propName] is IXObjHref) && !(value is IXObjHref))
-            (result[propName] as IXObjHref).href = getIDProperty(value);
-        else
-            result[propName] = value;
+        try
+        {
+            // are we just being asked to point at something?
+            if ((result[propName] is IXObjHref) && !(value is IXObjHref))
+                (result[propName] as IXObjHref).href = getIDProperty(value);
+            else
+                result[propName] = value;
+        }
+        catch (e:ReferenceError)
+        {
+            //throw new Error("Failed to set property "+propName+"("+value+") on "+ XObjUtils.getClassName(result)+". Check that class is dynamic or property name is spelled correctly");
+            trace("Failed to set property "+propName+"("+value+") on "+ XObjUtils.getClassName(result)+". Check that class is dynamic or property name is spelled correctly");
+        }
         
         return result;
     }

                catch (e:Error)
                {
                    //throw new Error("Failed to set attribute "+attrName+"("+attr+") on "+resultTypeName+". Check that class is dynamic or attribute name is spelled correctly");
                    /**TRACEDISABLE:trace("Failed to set attribute "+attrName+"("+attr+") on "+resultTypeName+". " + e + ". Check that class is dynamic or attribute name is spelled correctly");*/
                }
            }
            

                                    {
                                        if (e.errorID == 1034)
                                        {// must be a non-array thingy. IGNORE
                                            trace("Ignoring TypeError on promote to Array on" + propertyName);
                                        }
                                        else
                                            throw e;
