 			sceneBindings.addCallback('viewportHeight', viewportSizeChanged);
 			
 			updateProjection();
-			localToWorldChangedHandler(_camera.localToWorld, null);
 		}
 		
 		private function removedFromSceneHandler(camera : Camera, scene : Scene) : void

		
		private function updateProjection() : void
		{
			if (_camera.root is Scene)
			{
				var cameraData		: CameraDataProvider	= _camera.cameraData;
				var sceneBindings	: DataBindings			= Scene(_camera.root).bindings;
				var viewportWidth	: Number				= sceneBindings.getProperty('viewportWidth');
				var viewportHeight	: Number				= sceneBindings.getProperty('viewportHeight');
				var ratio			: Number				= viewportWidth / viewportHeight;
				var screenToView	: Matrix4x4				= cameraData.screenToView;
				
				cameraData.projection.perspectiveFoV(cameraData.fieldOfView, ratio, cameraData.zNear, cameraData.zFar);
				screenToView.lock().copyFrom(cameraData.projection).invert().unlock();
				
				cameraData.screenToWorld.lock().copyFrom(screenToView).append(_camera.localToWorld).unlock();
				cameraData.worldToScreen.lock().copyFrom(_camera.worldToLocal).append(cameraData.projection).unlock();
			}
		}
	}
}
		{
			_camera.addedToScene.remove(addedToSceneHandler);
			_camera.removedFromScene.remove(removedFromSceneHandler);
			_camera.worldToLocal.changed.remove(worldToLocalChangedHandler);
			_camera = null;
		}
		
