diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp
index 75d752f6e..94fec16ba 100644
--- a/source/games/blood/src/actor.cpp
+++ b/source/games/blood/src/actor.cpp
@@ -5152,8 +5152,8 @@ void MoveDude(DBloodActor* actor)
 			nDrag -= Scale(gDudeDrag, actor->xspr.height, 256);
 
 		// this cannot be floatified due to the effect of mulscale16r on the value.
-		actor->vel.X += FixedToFloat(-mulscale16r(FloatToFixed(actor->vel.X), nDrag));
-		actor->vel.Y += FixedToFloat(-mulscale16r(FloatToFixed(actor->vel.Y), nDrag));
+		actor->vel.X -= FixedToFloat(mulscale16r(FloatToFixed(actor->vel.X), nDrag));
+		actor->vel.Y -= FixedToFloat(mulscale16r(FloatToFixed(actor->vel.Y), nDrag));
 
 		if (actor->vel.XY().Length() < 0.0625)
 		{