 		 */
 		public function addCallback(callback:Function):Boolean
 		{
+			
 			if(callbacks)
 			{
+				if(callbacksInUse)
+				{
+					callbacks = callbacks.slice();
+					callbacksInUse = false;
+				}
+				
 				if(callbacks.indexOf(callback) >= 0) return false;
 				callbacks[callbacks.length] = callback;
 			}

	{
		private var callbacks:Vector.<Function>;
		
		
		
		/**

			if(!callbacks) return false;
			const index:int = callbacks.indexOf(callback);
			if(index < 0) return false; 

			if(callbacksInUse)
			{
				callbacks = callbacks.slice();
				callbacksInUse = false;
			}
				
			callbacks.splice(index, 1);
			return true;
		}
