anchor.diff:        Point.Y := Word(N);
         Point.X := N shr 16;
       {$endif}
  +
  +    // counters
       N := Node.NodeInfo;
  -    Store.SecondNodeInfo := N;
  +    X := (N shr 23) and -2;
       {$ifdef CPUX86}
  -      Inc(Buffer.Values[((N shr 23) and -2) + (N and 1)]);
  +      Inc(Buffer.Values[X + Store.LastLine]);
  +      Store.LastLine := N and 1;
  +      Inc(Buffer.Values[X + (N and 1)]);
       {$else}
         _Buffer := @Buffer;
  -      Inc(_Buffer.Values[((N shr 23) and -2) + (N and 1)]);
  -    {$endif}
  -
  -    // next cell
  -    {$ifdef CPUX86}
  -    CellOffsets := @FInfo.CellOffsets;
  -    {$endif}
  -    Inc(NativeInt(Cell), CellOffsets[N and 7{parent}]);
  -
  -    // cell node
  -    {$ifdef LARGEINT}
  -      N := Cell.NodePtr;
  -      Node := Pointer(
  -        (NodeBuffers[N shr LARGE_NODEPTR_OFFSET]) +
  -        (N and NODEPTR_CLEAN_MASK) );
  -    {$else}
  -      Node := Pointer(Cell.NodePtr and NODEPTR_CLEAN_MASK);
  +      Inc(_Buffer.Values[X + Store.LastLine]);
  +      Store.LastLine := N and 1;
  +      Inc(_Buffer.Values[X + (N and 1)]);
       {$endif}
     until ({$ifdef CPUX86}Store.{$endif}StartNode = Node);
   
  -  // start node coordinates, counter
  -  Dec(Point);
  -  N := Cardinal(Node.Coordinates);
  -  {$ifdef LARGEINT}
  -    PNativeUInt(Point)^ := (NativeUInt(Word(N)) shl 32) + (N shr 16);
  +  // correction
  +  {$ifdef CPUX86}
  +    Dec(Buffer.Values[X + (N and 1)]);
     {$else}
  -    Point.Y := Word(N);
  -    Point.X := N shr 16;
  -  {$endif}
  -  N := Node.NodeInfo;
  -  {$ifdef CPUX86}
  -    Inc(Buffer.Values[((N shr 23) and -2) + (Store.SecondNodeInfo and 1)]);
  -  {$else}
  -    _Buffer := @Buffer;
  -    Inc(_Buffer.Values[((N shr 23) and -2) + (Store.SecondNodeInfo and 1)]);
  +    Dec(_Buffer.Values[X + (N and 1)]);
     {$endif}
   
     // distance
  
positive.code:   CellOffsets: PCPFOffsets;
    Cell: PCPFCell;
    Node: PCPFNode;
    NodePtrs, N: NativeUInt;
    Length, i: NativeUInt;
    WeightCounts: ^TWeightCounts;
    Point: PPoint;
  
    Store: record
      FinishNode: PCPFNode;
      SecondNodeInfo: NativeUInt;
      {$ifdef CPUX86}
        StartNode: PCPFNode;
        NodePtrs: NativeUInt;
        Length: NativeUInt;
      {$else}
        _Self: Pointer;
  
negative.code:   {$else}
      HALF := CrystalPathFinding.HALF;
      StartPointNode := StartPoint.Node;
      SingleLineWeigths := Pointer(@FActualInfo.Weights.SinglesLine);
    {$endif}
  
    {$ifdef LARGEINT}
  