anchor.diff:  
   function TPathFindingAStarNew.HeapCmp(A, B: Pointer): Boolean;
   begin
  -  if A = nil then
  -    Result := True
  -  else
  -    Result := (B = nil) or (PANodeRec(A).Estim + PANodeRec(A).CostTo < PANodeRec(B).Estim + PANodeRec(B).CostTo);
  +  Result := (A = nil) or (B = nil) or (PANodeRec(A).Estim + PANodeRec(A).CostTo < PANodeRec(B).Estim + PANodeRec(B).CostTo);
   end;
   
   
   function TPathFindingAStarNew.MakeRoute: Boolean;
  -const c_closed = 65535;
  +const
  +  c_closed = 65535;
   var
     N: PANodeRec;
     X, Y: Word;
  
positive.code:       fOpenRef[Y, X].X := X;
        fOpenRef[Y, X].Y := Y;
      end;
  
  end;
  
  
  
negative.code:   private
      fHeap: TBinaryHeap;
      fMinN: PANodeRec;
      fOpenRef: array [0..MAX_MAP_SIZE, 0..MAX_MAP_SIZE] of TANodeRec; //References to OpenList, Sized as map
      fRouteID: Cardinal;
      function HeapCmp(A,B: Pointer): Boolean;
      function GetNodeAt(X,Y: SmallInt): PANodeRec;
    protected
      function MakeRoute: Boolean; override;
      procedure ReturnRoute(NodeList: TKMPointList); override;
    public
  