diff -r 1565a553d200 -r 8571151411b3 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Wed Dec 29 17:27:33 2010 +0100 +++ b/hedgewars/uGears.pas Wed Dec 29 16:21:30 2010 -0500 @@ -595,6 +595,7 @@ if CurAmmoGear = Gear then CurAmmoGear:= nil; if FollowGear = Gear then FollowGear:= nil; +if lastGearByUID = Gear then lastGearByUID := nil; RemoveGearFromList(Gear); Dispose(Gear) end; @@ -1778,13 +1779,20 @@ var gear: PGear; begin GearByUID:= nil; +if uid = 0 then exit; +if (lastGearByUID <> nil) and (lastGearByUID^.uid = uid) then + begin + GearByUID:= lastGearByUID; + exit + end; gear:= GearsList; while gear <> nil do begin if gear^.uid = uid then begin - GearByUID:= gear; - exit + lastGearByUID:= gear; + GearByUID:= gear; + exit end; gear:= gear^.NextGear end