 					lhm.setObject(lhm.getName(oldObject), newObject);
 				else if (ldo)
 					ldo.target = newObject;
+				
+				// ignore LinkablePlaceholder state if it has been marked invalid
+				var oldPlaceholder:LinkablePlaceholder = oldObject as LinkablePlaceholder;
+				if (oldPlaceholder && oldPlaceholder.stateInvalid)
+					return;
+				
 				Weave.setState(newObject, sessionState);
 			}
 			finally

		}
		
		/**
		 * @return success flag
		 */
		private static function replace(oldObject:ILinkableObject, newObject:ILinkableObject):void

		
		private var classDef:Class;
		private var instance:ILinkableObject;
		private var stateInvalid:Boolean = false;
		
		public function getClass():/*/new(..._:any[])=>T/*/Class
		{
