 				if (links != null)
 				{
 					for each (link in links)
-					{
-						// sanity checks
+					{
+						// sanity checks
+						if (objectWasDisposed(link))
+						{
+							reportError('found disposed LinkableDynamicObject while handling global object creation');
+							continue;
+						}
 						if (link._globalName != name)
 							throw new Error("LinkableDynamicObject did not link to expected global name.");
 						if (link._internalObject != null)

					for each (link in links)
					{
						// sanity check
						if (link._globalName != name)
							throw new Error("LinkableDynamicObject did not link to expected global name.");
						

			}

			// run callbacks for each link after all links have been updated.
			for each (link in linksThatChanged)
			{
				if (objectWasDisposed(link))
				{
					// this could possibly happen and is likely no cause for alarm - just a side-effect of triggering callbacks
					//trace("LinkableDynamicObject was disposed while triggering another one's callbacks");
					continue;
				}
				link.triggerCallbacks();
			}
		}

		/**
