Index: libvo/vo_direct3d.c =================================================================== --- libvo/vo_direct3d.c (revision 28043) +++ libvo/vo_direct3d.c (working copy) @@ -186,16 +186,15 @@ priv->d3d_surface = NULL; } + if (priv->d3d_backbuf != NULL) { + IDirect3DSurface9_Release (priv->d3d_backbuf); + priv->d3d_backbuf = NULL; + } + if (priv->d3d_device != NULL) { IDirect3DDevice9_Release (priv->d3d_device); priv->d3d_device = NULL; } - - /* The following is not a memory leak. d3d_backbuf is not malloc'ed - * but just holds a pointer to the back buffer. Nobody gets hurt from - * setting it to NULL. - */ - priv->d3d_backbuf = NULL; }