 				_globalBindings.remove(oldProviders[providerId] as IDataProvider);
 			
 			// remove controllers
-			var newTargets	: Vector.<ISceneNode>	= group.getDescendantsByType(
-				IControllerTarget
-			);
-			var numTargets	: int					= 0;
+			TMP_SCENE_VECTOR.length = 0;
+			var oldTargets	: Vector.<ISceneNode>	= group.getDescendantsByType(
+				IControllerTarget,
+				TMP_SCENE_VECTOR
+			);
+			var numTargets	: int					= oldTargets.length;
 			
 			for (var targetId : int = 0; targetId < numTargets; ++targetId)
 			{
-				var target : IControllerTarget = newTargets[targetId]
+				var target : IControllerTarget = oldTargets[targetId]
 												 as IControllerTarget;
 				var controller : AbstractController	= target.controller;
 				

			var numControllers 	: int 		= _ctrlTargets.length;
			var time			: Number	= new Date().time - TIME_OFFSET;
			
//			_globalData.setProperty("time", time);
			
			for (var ctrlIndex : int = numControllers - 1; ctrlIndex >= 0; --ctrlIndex)
			{

				_globalBindings.add(newProviders[providerId] as IDataProvider);
			
			// add controllers
			TMP_SCENE_VECTOR.length = 0;
			var newTargets	: Vector.<ISceneNode>	= group.getDescendantsByType(
				IControllerTarget,
				TMP_SCENE_VECTOR
			);
			var numTargets	: int					= newTargets.length;
			
