diff -r b5171e6c94a4 -r 6afce21e60c3 hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Mon Aug 05 22:28:59 2019 +0200 +++ b/hedgewars/uGearsHandlersMess.pas Mon Aug 05 22:57:12 2019 +0200 @@ -4619,8 +4619,12 @@ end; if (HHGear^.Message and (gmAttack or gmUp or gmLeft or gmRight) <> 0) and - (HHGear^.Message and gmPrecise = 0) then + (HHGear^.Message and gmPrecise = 0) and + ((Gear^.State and gsttmpFlag) <> 0) then + begin Gear^.State := Gear^.State and (not gsttmpFlag); + HHGear^.dX := Gear^.dX; + end; if HHGear^.Message and gmPrecise = 0 then HHGear^.Message := HHGear^.Message and (not (gmUp or gmLeft or gmRight)); @@ -4682,7 +4686,8 @@ if (dY < _0_1) and (dY > -_0_1) then begin Gear^.State := Gear^.State or gsttmpFlag; - dY := dY - _0_2 + dY := dY - _0_2; + Gear^.dX:= dX; end end end;