 			_target = new Vector3D( 0, 0, 0, 1 );
 			_down = new Vector3D( 0, 1, 0 );
 			_pDirection = new Vector3D( 0, 0, 1 );
+			_realDown = new Vector3D();
+			_projectionTransform = new Matrix3D;
 		}
 
 		/**

			if( !_spaceTransform || !_transform )
			{
				_transform = spaceTransform.clone();
				var projectionTransform:Matrix3D = new Matrix3D( Vector.<Number>( [
					_projectionDistance, 0, 0, 0,
					0, _projectionDistance, 0, 0,
					0, 0, 1, 1,
					0, 0, 0, 0
				] ) );
				_transform.append( projectionTransform );
			}
			return _transform;
		}

		private var _pTrack:Vector3D;
		private var _pFront:Vector3D;
		
		private var _realDown:Vector3D;
		private var _projectionTransform:Matrix3D;
		
		/**
		 * The constructor creates a Camera object. Usually, users don't need to create camera
		 * objects, but will use the camera objects that are properties of Flint's renderers.
