 				for (var target:Object in _d2d_callback_target.dictionary[callback])
 					getCallbackCollection(target as ILinkableObject).removeCallback(callback);
 				delete _d2d_callback_target.dictionary[callback];
+				delete _funcToWrapper[callback];
 				return true;
 			}
 			

			return false;
		}
		
		private function generateBusyWaitWrapper(callback:Function, object:ILinkableObject):Function
		{
			return function():void {
				if (!WeaveAPI.SessionManager.linkableObjectIsBusy(object))
					callback();
			};
		}
		
		/**

				}
				
				if (delayWhileBusy)
					callback = _funcToWrapper[callback] as Function || (_funcToWrapper[callback] = generateBusyWaitWrapper(callback));
				
				_d2d_callback_target.set(callback, object, true);
				if (immediateMode)
