diff --git a/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp b/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp
index 0862bfcbd34e1dfc9195218f579ff31ae668b96d..428ab84b2fc18c23e8f10a2372ae68bb17d4b41a 100644
--- a/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp
+++ b/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp
@@ -117,19 +117,18 @@ bool FlightTaskOrbit::sendTelemetry()
 	return true;
 }
 
-bool FlightTaskOrbit::setRadius(const float r)
+bool FlightTaskOrbit::setRadius(float r)
 {
-	if (math::isInRange(r, _radius_min, _radius_max)) {
-		// small radius is more important than high velocity for safety
-		if (!checkAcceleration(r, _v, _acceleration_max)) {
-			_v = math::sign(_v) * sqrtf(_acceleration_max * r);
-		}
+	// clip the radius to be within range
+	r = math::constrain(r, _radius_min, _radius_max);
 
-		_r = r;
-		return true;
+	// small radius is more important than high velocity for safety
+	if (!checkAcceleration(r, _v, _acceleration_max)) {
+		_v = math::sign(_v) * sqrtf(_acceleration_max * r);
 	}
 
-	return false;
+	_r = r;
+	return true;
 }
 
 bool FlightTaskOrbit::setVelocity(const float v)