Exceptio when invoking overriden method from VBScript

I have just started using VBScript to control delphi objects that expose a
dual interface.

Everything works fine until I try and access a method of an object that
overrides a virtual method. In such cases I get an access violation in
TAutoIntfObject.Invoke.

Am I wrong to make methods that implement an interface virtual ? or is this
acceptable ? Its not caused me any problems when I use the COM interface
directly - but it does seem to be a problem when I try and use the IDispatch
interface from VBScript.

This is the bones of what I am doing :-

  TMyObject = class(TAutoIntfObject, IMyObject)
     procedure Set_Enabled(Value: WordBool); virtual; safecall;
  end;

  TMyNewObject = class(TMyObject)
    procedure Set_Enabled(Value: WordBool); override; safecall;
  end;

If I create an object from the first class and call the Set_Enable method
from VBScript everything is OK.
If I create an object from the descended class and call its Set_Enable
method, I get the problem.

Hope someone can help.
    Dave Taylor.