 			@applyGravity = false
 
 			@velocity = new Three.Vector3(0, 0, 0)
-			@angularVelocity = new Three.Quaternion()
+			@angularVelocity = new Three.Euler(0, 0, 0, 'YXZ')
 			
 			@forces = []
 			@angularForces = []

				dragForce = @velocity.clone().normalize().negate().multiplyScalar(.5 * 1.2 * @drag * @velocity.lengthSq())
				@velocity.add(dragForce.divideScalar(@mass))

				# Calculate our new position from the velocity.
				@position.add(@velocity.clone().multiplyScalar(dt))

				# Rudimentary way to detect of we're on the planet surface. This should
				# be replaced by collision detection.
				if @position.length() < 300
					@position.normalize().multiplyScalar(300)
					@velocity.projectOnPlane(@position)

			# ... and apply rotational forces
			if updateRotation

				# Set our last rotation if we don't have one yet.
				unless @_lastRotation?
					@_lastRotation = @rotation.clone()

				# Calculate our current angular velocity by subtracting our current rotation
				# from our last rotation, and set our rotation as lastRotation to
				# calculate the angular velocity in the next loop.
				rotationQuaternion = new Three.Quaternion().setFromEuler(@rotation)
				lastRotationQuaternion = new Three.Quaternion().setFromEuler(@_lastRotation)
				
				@angularVelocity = lastRotationQuaternion.clone().inverse().multiply(rotationQuaternion)
				@_lastRotation = @rotation.clone()

				# Loop through all angular forces and calculate the angular acceleration.
				angularAcceleration = new Three.Quaternion()
				while force = @angularForces.pop()
					forceQuaternion = new Three.Quaternion().setFromEuler(force)
					angularAcceleration.multiply(forceQuaternion)

				# Calculate our new rotation from the angular velocity and acceleration.
				targetRotationQuaternion = rotationQuaternion.clone()
				targetRotationQuaternion.slerp(rotationQuaternion.clone().multiply(angularAcceleration), dt)
				targetRotationQuaternion.multiply(@angularVelocity)

				# Add drag force to the rotation.
				targetRotationQuaternion.slerp(rotationQuaternion, @angularDrag * dt)

				# Calculate and set our new rotation from the angular velocity.				
				@rotation.setFromQuaternion(targetRotationQuaternion)

		# Applies transformation information given in an object to the entity.
		#

			# Apply forces ...
			if updatePosition

				# Calculate our new position from the velocity.
				@position.add(@velocity.clone().multiplyScalar(dt))

				# Rudimentary way to detect of we're on the planet surface. This should
				# be replaced by collision detection.
				if @position.length() < 300
					@position.normalize().multiplyScalar(300)
					@velocity.projectOnPlane(@position)

				# Loop through all forces and calculate the acceleration.
				acceleration = new Three.Vector3(0, 0, 0)			
