 				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;
 			}
 			

				}
				
				if (delayWhileBusy)
				{
					if (_funcToWrapper[callback] == null)
						_funcToWrapper[callback] = generateBusyWaitWrapper(callback, object);
					callback = _funcToWrapper[callback];
				}
				
				_d2d_callback_target.set(callback, object, true);
				if (immediateMode)

	import flash.utils.Dictionary;
	import flash.utils.getQualifiedClassName;
	
	import weave.api.getCallbackCollection;
	import weave.api.core.IExternalSessionStateInterface;
	import weave.api.core.ILinkableDynamicObject;
	import weave.api.core.ILinkableHashMap;
	import weave.api.core.ILinkableObject;
	import weave.compiler.Compiler;
	import weave.compiler.ICompiledObject;
	import weave.compiler.StandardLib;
