diff --git a/src/k_collide.cpp b/src/k_collide.cpp
index ef47d6beb22b78ef07260ac40851906cf373c508..eb9c788e0c3fe6e3439353639c29a716608cc73d 100644
--- a/src/k_collide.cpp
+++ b/src/k_collide.cpp
@@ -559,17 +559,16 @@ boolean K_DropTargetCollide(mobj_t *t1, mobj_t *t2)
 	}
 
 	fixed_t bumppower = FRACUNIT;
-	const fixed_t minbumppower = FRACUNIT/2;
 	if (t2->player)
 	{
 		fixed_t speeddampen = FixedDiv(t2->player->speed, 2*K_GetKartSpeed(t2->player, false, false));
 		bumppower = Easing_InQuad(
 			std::min(speeddampen, FRACUNIT),
 			FRACUNIT,
-			minbumppower
+			3*FRACUNIT/4
 		);
-		if (t2->player->tripwireLeniency)
-			bumppower = minbumppower;
+		if (t2->player->tripwireLeniency || t2->player->tripwirePass != TRIPWIRE_NONE)
+			bumppower = FRACUNIT/2;
 	}
 
 	if (t2->type == MT_INSTAWHIP)