diff --git a/src/k_kart.c b/src/k_kart.c
index a39543711eb144b561afdb5f7c007ce4ff40fb22..0d7ec9cd0b41c6a0c0c36ef6f333aab03723cafa 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -3298,11 +3298,18 @@ fixed_t K_GetNewSpeed(player_t *player)
 {
 	const fixed_t accelmax = 4000;
 	const fixed_t p_speed = K_GetKartSpeed(player, true, true);
-	const fixed_t p_accel = K_GetKartAccel(player);
+	fixed_t p_accel = K_GetKartAccel(player);
 
 	fixed_t newspeed, oldspeed, finalspeed;
 
-	oldspeed = R_PointToDist2(0, 0, player->rmomx, player->rmomy); // FixedMul(P_AproxDistance(player->rmomx, player->rmomy), player->mo->scale);
+	if (K_PlayerUsesBotMovement(player) == true && player->botvars.rubberband > 0)
+	{
+		// Acceleration is tied to top speed...
+		// so if we want JUST a top speed boost, we have to do this...
+		p_accel = FixedDiv(p_accel, player->botvars.rubberband);
+	}
+
+	oldspeed = R_PointToDist2(0, 0, player->rmomx, player->rmomy);
 	// Don't calculate the acceleration as ever being above top speed
 	if (oldspeed > p_speed)
 		oldspeed = p_speed;