diff -r 8aa82e350b8e -r 28782e03b8f0 hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Fri Oct 27 19:54:27 2017 +0200 +++ b/hedgewars/uGearsHandlersMess.pas Sat Oct 28 04:53:21 2017 +0200 @@ -2872,7 +2872,8 @@ valid:= false; lx:= Gear^.Target.X - SpritesData[sprHHTelepMask].Width div 2; // left - lx:= CalcWorldWrap(lx, SpritesData[sprHHTelepMask].Width); // Take world edge into account + if WorldEdge <> weBounce then + lx:= CalcWorldWrap(lx, SpritesData[sprHHTelepMask].Width div 2); // Take world edge into account ty:= Gear^.Target.Y - SpritesData[sprHHTelepMask].Height div 2; // top // remember original target location @@ -2888,6 +2889,9 @@ dec(Gear^.Target.Y); end; + if (WorldEdge = weBounce) and ((Gear^.Target.X < LeftX) or (Gear^.Target.X > RightX)) then + valid:= false; + if not valid then begin HHGear^.Message := HHGear^.Message and (not gmAttack);