{$MODE DELPHI} type TSmallWrapper = record Value: TValue; end; TWrapper = class strict private class var FSmallWrapper: TSmallWrapper; public class procedure Z; static; end; class procedure TWrapper.Z; begin FSmallWrapper.Value := New(PInteger); Dispose(FSmallWrapper.Value); { Error: pointer type expected, but ... } end; begin TWrapper.Z; end.