anchor.diff:    groupFlagColor: Cardinal;
   begin
     Result := False;
  -  if (aObject is TKMUnit) then
  -  begin
  -    U := TKMUnit(aObject);
  -    if not Assigned(aUnitFilterFunc) or aUnitFilterFunc(aObject) then
  +  if aEntity.IsUnit then
  +  begin
  +    U := TKMUnit(aEntity);
  +    if not Assigned(aUnitFilterFunc) or aUnitFilterFunc(aEntity) then
       begin
         RenderUnit(U, U.Position, aHandColor, aDoHighlight, aHighlightColor);
         Result := True;
       end;
     end else 
  -  if (aObject is TKMUnitGroup) then
  -  begin
  -    G := TKMUnitGroup(aObject);
  -    if not Assigned(aGroupFilterFunc) or aGroupFilterFunc(aObject) then
  +  if aEntity.IsGroup then
  +  begin
  +    G := TKMUnitGroup(aEntity);
  +    if not Assigned(aGroupFilterFunc) or aGroupFilterFunc(aEntity) then
       begin
         U := G.FlagBearer;
         if aUseGroupFlagColor then
  
positive.code:     procedure RenderForegroundUI_Units;
      procedure RenderForegroundUI_PaintBucket(aHighlightAll: Boolean);
      procedure RenderForegroundUI_UniversalEraser(aHighlightAll: Boolean);
      function TryRenderUnitOrGroup(aObject: TObject; aUnitFilterFunc, aGroupFilterFunc: TBooleanFunc; aUseGroupFlagColor, aDoHighlight: Boolean; aHandColor, aFlagColor: Cardinal; aHighlightColor: Cardinal = 0): Boolean;
      procedure RenderUnit(U: TKMUnit; const P: TKMPoint; FlagColor: Cardinal; DoHighlight: Boolean; HighlightColor: Cardinal);
      function PaintBucket_UnitToRender(aUnit: TObject): Boolean;
      function PaintBucket_GroupToRender(aGroup: TObject): Boolean;
  
negative.code: 
  procedure TRenderPool.RenderForegroundUI_Units;
  var
    entity: TKMHandEntity;
    P: TKMPoint;
    dir : TKMDirection;
  begin
    if gCursor.Tag1 = 255 then
    begin
      entity := gMySpectator.HitTestCursorWGroup(True);
      TryRenderUnitOrGroup(entity, nil, nil, True, True, DELETE_COLOR, 0, DELETE_COLOR);
    end
    else
    begin
  