anchor.diff:  
         // if node is allocated/initialized
         ChildNode := Pointer(NativeUInt(Cell.NodePtr));
  -      if (NativeInt(ChildNode) and NODEPTR_FLAG_CALCULATED = 0) then
  +      if (NativeInt(ChildNode) and NODEPTR_FLAG_HEURISTED = 0) then
         begin
           // mask & parentmask test
           if (ChildNodeInfo and ((ChildNodeInfo and $ff00) shl 8) = 0) then
             goto nextchild_continue;
   
  -        if (ChildNode = nil) then
  +        if (NativeInt(ChildNode) and NODEPTR_FLAG_ALLOCATED = 0) then
           begin
             // allocate new node
             ChildNode := Store.Info.NodeAllocator.NewNode;
  
positive.code:   {$endif}
  
    {$ifdef LARGEINT}
      NODEPTR_MODIFIER := Store.Info.NodeAllocator.LargeModifier +
        (NODEPTR_FLAG_LARGE + NODEPTR_FLAG_CALCULATED);
    {$endif}
  
    // Top initialization
  
negative.code:   NATTANABLE_LENGTH_LIMIT = not Cardinal(PATHLENGTH_LIMIT);
    SORTVALUE_LIMIT = NATTANABLE_LENGTH_LIMIT - 1;
  
    FLAG_KNOWN_PATH = 1 shl 6;
    FLAG_ATTAINABLE = 1 shl 7;
    PATHLESS_TILE_WEIGHT = High(Cardinal) shr 1;
  
    {$ifdef LARGEINT}
      LARGE_NODEPTR_OFFSET = 32 - {0..31}5;
    {$endif}
  
    NODEPTR_FLAG_ALLOCATED = 1;
    NODEPTR_FLAG_HEURISTED = 2;
    NODEPTR_CLEAN_MASK = Integer((not 7) {$ifdef LARGEINT} and ((1 shl LARGE_NODEPTR_OFFSET) - 1){$endif});
  
    {$ifdef LARGEINT}
  