anchor.diff:    else ANode^.Busy := ANode^.Busy and not (Word(1) shl BitFieldIndex);
   end;
   
  +function CleanChildIndexMask(BitFieldIndex : Byte) : Int64; inline;
  +begin
  +  Result := Int64(-1) xor (Int64(BucketMask) shl (BitFieldIndex * BitsForChildIndexPerBucket));
  +end;
  +
   procedure THashedContainer.SetChildIndex(ANode: PTrieBranchNode; BitFieldIndex,
       ChildIndex: Byte);
   begin
  -  ANode^.ChildIndex := ANode^.ChildIndex and CleanChildIndexMask[BitFieldIndex];
  +  ANode^.ChildIndex := ANode^.ChildIndex and CleanChildIndexMask(BitFieldIndex);
     ANode^.ChildIndex := ANode^.ChildIndex or (_Int64(ChildIndex) shl (BitFieldIndex * BitsForChildIndexPerBucket));
   end;
   
  
positive.code:     FOnFreeTrieNode(ANode, Level);
  end;
  
  function THashedContainer.GetBitFieldIndex(const Data; Level: Byte): Byte;
  begin
    {$IFNDEF FPC}
  
negative.code:   {$ENDIF}
    case FHashSize of
      1..sizeof(Word) * BitsPerByte :
        Result := (Word(Data) shr ChildIndexShift(FHashSize, Level)) and BucketMask;
      sizeof(Word) * BitsPerByte + 1..sizeof(Cardinal) * BitsPerByte :
        Result := (Integer(Data) shr ChildIndexShift(FHashSize, Level)) and BucketMask;
      sizeof(Cardinal) * BitsPerByte + 1..sizeof(Int64) * BitsPerByte :
        Result := (Int64(Data) shr ChildIndexShift(FHashSize, Level)) and BucketMask;
      else RaiseHashSizeError;
    end;
  end;
  