anchor.diff:  procedure TKMUnitWarrior.Halt(aTurnAmount:shortint=0; aLineAmount:shortint=0);
   var HaltPoint: TKMPointDir;
   begin
  +  //Pass command to Commander unit, but avoid recursively passing command to Self
     if (fCommander <> nil) and (fCommander <> Self) then
     begin
       fCommander.Halt(aTurnAmount,aLineAmount);
  +    exit; //@Lewin: we should exit here, right?
     end;
   
     if fOrderLoc.Loc.X = 0 then //If it is invalid, use commander's values
  
positive.code:   begin
      for i:=0 to fMembers.Count-1 do
      begin
        //Put the commander in the right place, or if
        if i = fUnitsPerRow div 2 then
        begin
          aNewCommander.AddMember(Self);
          AddedSelf := true;
        end;
  
        aNewCommander.AddMember(TKMUnitWarrior(fMembers.Items[i]));
        TKMUnitWarrior(fMembers.Items[i]).fCommander := aNewCommander;
      end;
  
negative.code: procedure TKMUnitWarrior.LinkTo(aNewCommander:TKMUnitWarrior; InitialLink:boolean=false); //Joins entire group to NewCommander
  var i:integer; AddedSelf: boolean;
  begin
    //Try to redirect command so that both units are Commanders
    if (GetCommander<>Self) or (aNewCommander.GetCommander<>aNewCommander) then begin
      GetCommander.LinkTo(aNewCommander.GetCommander);
      exit;
    end;
  
    //Only link to same group type
    if UnitGroups[byte(fUnitType)] <> UnitGroups[byte(aNewCommander.fUnitType)] then exit;
  
    //Can't link to self for obvious reasons
    if aNewCommander = Self then exit;
  