{ Source provided for Free Pascal Bug Report 2727 }
{ Submitted by "marco (the gory bugs department)" on  2003-10-08 }
{ e-mail:  }

{$mode delphi}


type
  IPersistenceCapable = interface
    ['{A7F3DA50-93BF-4EAF-B40C-8F5020E5D890}']
    function GetSelf: TObject;
    property Self: TObject read GetSelf;
  end;

  TPersistenceCapable = class(TInterfacedObject, IPersistenceCapable)
   function GetSelf: TObject;
   function nonsense:boolean;
  end;

function TPersistenceCapable.GetSelf: TObject;
begin
  result:=nil;
end;

function TPersistenceCapable.nonsense:boolean;
{this works fine if it isn't a method....}

var
  lSource: IPersistenceCapable;

begin
     result:=(lSource.Self is TPersistenceCapable)
end;


begin
end.