diff --git a/libavdevice/dshow_pin.c b/libavdevice/dshow_pin.c
index f31ecc6c99..5e14108092 100644
--- a/libavdevice/dshow_pin.c
+++ b/libavdevice/dshow_pin.c
@@ -73,6 +73,7 @@ libAVPin_Disconnect(libAVPin *this)
         return VFW_E_NOT_STOPPED;
     if (!this->connectedto)
         return S_FALSE;
+    IPin_Release(this->connectedto);
     this->connectedto = NULL;
 
     return S_OK;