 		public function requestObjectCopy(name:String, objectToCopy:ILinkableObject):ILinkableObject
 		{
 			if (objectToCopy == null)
+			{
+				removeObject(name);
 				return null;
+			}
 			
 			delayCallbacks(); // make sure callbacks only trigger once
 			//var className:String = getQualifiedClassName(objectToCopy);

		 */
		private function initObjectByClassName(name:String, className:String, lockObject:Boolean = false):ILinkableObject
		{
			// do nothing if locked or className is null
			if (className != null)
			{
				className = _deprecatedClassReplacements[className] || className;
				
				// if no name is specified, generate a unique one now.
				if (!name)
				{
					if (className.indexOf("::") >= 0)
						name = generateUniqueName(className.split("::")[1]);
					else
						name = generateUniqueName(className);
				}
				if ( ClassUtils.classImplements(className, SessionManager.ILinkableObjectQualifiedClassName)
					&& (_typeRestriction == null || ClassUtils.classIs(className, _typeRestrictionClassName)) )
				{

					removeObject(name);
				}
			}
			else
			{
				removeObject(name);
			}
			return _nameToObjectMap[name] as ILinkableObject;
		}
		/**
