 			_renderingPass		= renderingShader;
 			_watchedProperties	= new Vector.<String>();
 			_scene				= scene;
-			_updatePasses		= true;
 			
-			scene.enterFrame.add(onSceneEnterFrame);
+            scene.enterFrame.add(sceneEnterFrameHandler);
 		}
 		
-		private function onSceneEnterFrame(scene		: Scene,
-										   viewport		: Viewport,
-										   destination	: BitmapData, 
-										   timer		: uint) : void
+		private function sceneEnterFrameHandler(scene		: Scene,
+                                                viewport	: Viewport,
+                                                destination	: BitmapData, 
+                                                timer		: uint) : void
 		{
-			if (_updatePasses)
-			{
-				updatePasses();
-				_updatePasses = false;
-			}
+            scene.enterFrame.remove(sceneEnterFrameHandler);
+            
+			updatePasses();
 		}
 		
 		private function propertyChangedHandler(sceneBindings	: DataBindings, 

												oldValue		: Object,
												newValue		: Object) : void
		{
			_updatePasses = true;
		}
		
		private function updatePasses() : void

		private var _renderingPass		: Shader;
		private var _watchedProperties	: Vector.<String>;
		
		public function get scene() : Scene
		{
			return _scene;
