diff --git a/dlls/vbscript/vbdisp.c b/dlls/vbscript/vbdisp.c
index c14cd7b4c714bbe79a1c6d93bef588124a1c829b..36eba21e2796cbca85b492adae4e67685ec8b770 100644
--- a/dlls/vbscript/vbdisp.c
+++ b/dlls/vbscript/vbdisp.c
@@ -1388,6 +1388,9 @@ static HRESULT WINAPI ScriptDisp_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc
 
     TRACE("(%p)->(%x %x %x %p %p %p %p)\n", This, id, lcid, wFlags, pdp, pvarRes, pei, pspCaller);
 
+    if (!This->ctx)
+        return E_UNEXPECTED;
+
     if (id & DISPID_FUNCTION_MASK)
     {
         id &= ~DISPID_FUNCTION_MASK;