anchor.diff:        end;
   
     //Keep the selected unit Selected
  -  if NewGroup.HasMember(fSelected) or aSplitSingle then
  +  if not fSelected.IsDeadOrDying and NewGroup.HasMember(fSelected) then
  +  begin
       NewGroup.fSelected := fSelected;
  +    SelectNearestMember; // For current group set fSelected to nearest member to its old selected
  +  end;
   
     //Select single splitted unit
     if aSplitSingle
  -    and (gGame.ControlledHandIndex = NewGroup.Owner) //Only select unit for player, that issued order (group owner)
  +    and (gGame.ControlledHandIndex = NewGroup.Owner) //Only select unit for player that issued order (group owner)
       and (gGame.ControlledHandIndex <> -1)
       and (gMySpectator.Selected = Self) then //Selection is still on that group (in MP game there could be a delay, when player could select other target already)
       gMySpectator.Selected := NewGroup;
  
positive.code: end;
  
  
  //Member reports that he has died (or been killed)
  procedure TKMUnitGroup.Member_Died(aMember: TKMUnitWarrior);
  var
  
negative.code:   Assert(I <> -1, 'No such member');
  
    if (aMember = fSelected) then
      SelectNearestMember;
  
    fMembers.Delete(I);
  
  