<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I suspect the reason is that the object still has a refCount of 1 when you free it and this code raises the exception:</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; ">    <span style="color: #2533d7">procedure</span> TInterfacedObject.BeforeDestruction;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; ">     <span style="color: #2533d7">begin</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; ">         <span style="color: #2533d7">if</span> frefcount<>0 <span style="color: #2533d7">then</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; ">           HandleError(204);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; ">      <span style="color: #2533d7">end</span>;</div></div><div><br></div><div>You should never free an interfaced object directly.  </div><div><br></div><div>Regards Andrew.</div><div><br></div><div><div>On 14 Nov 10, at 09:27 , Sven Barth wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">You're right of course...<br><br>The following code flow works:<br><br>begin<br> t := TMyInterfacedObject.Create;<br> i := t;<br> t.Foo;<br> i.Foo;<br>end;<br><br>But why doesn't the following?<br><br>begin<br> t := TMyInteracedObject.Create;<br> try<br>   t._AddRef;<br>   i := t;<br>   t.Foo;<br>   i.Foo;<br>   i := Nil; // shouldn't this solve the problem as well? or is this a problem of temp inteface variables?<br> finally<br>   t.Free;<br> end;<br>end;<br></blockquote></div><br></body></html>