When I looked at the expression Assigned(@DebugProc) then I was pretty sure that this would always evaluate to true, because I thought that @DebugProc would return the address of the variable pointing to the procedure. But thats not the case here, Delphi help states this: "If F is a routine (a function or procedure), @F returns F?¢_Ts entry point."

Always nice to learn new things.