diff --git a/dlls/strmbase/pospass.c b/dlls/strmbase/pospass.c
index b7ba8117a6811c60104bf8afaba02d025f566b14..e547328b102511c2ded1e11f0208f10bbdbddc66 100644
--- a/dlls/strmbase/pospass.c
+++ b/dlls/strmbase/pospass.c
@@ -236,6 +236,8 @@ HRESULT WINAPI CreatePosPassThru(IUnknown* pUnkOuter, BOOL bRenderer, IPin *pPin
     ISeekingPassThru *passthru;
 
     hr = CoCreateInstance(&CLSID_SeekingPassThru, pUnkOuter, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)ppPassThru);
+    if (FAILED(hr))
+        return hr;
 
     IUnknown_QueryInterface(*ppPassThru, &IID_ISeekingPassThru, (void**)&passthru);
     hr = ISeekingPassThru_Init(passthru, bRenderer, pPin);