anchor.diff:        U := fIDCache.GetUnit(aUnitID);
   
         //Player can not attack animals
  -      if (G <> nil) and (U <> nil) and (U.Owner <> HAND_ANIMAL) then
  +      if (G <> nil) and (U <> nil) and (U.Owner <> HAND_ANIMAL) and G.CanTakeOrders then
           G.OrderAttackUnit(U, True);
       end
       else
  
positive.code:       and (aDirection in [dirN..dirNW]) then
      begin
        G := fIDCache.GetGroup(aGroupID);
        if (G <> nil) and G.CanWalkTo(KMPoint(X,Y), 0) then
          G.OrderWalk(KMPoint(X,Y), True, wtokScript, aDirection);
      end
      else
  
negative.code:       and (TKMDirection(aDirection + 1) in [dirN..dirNW]) then
      begin
        G := fIDCache.GetGroup(aGroupID);
        if (G <> nil) and G.CanTakeOrders and G.CanWalkTo(KMPoint(X,Y), 0) then
          G.OrderWalk(KMPoint(X,Y), True, wtokScript, TKMDirection(aDirection+1));
      end
      else
  