Index: libvo/vo_direct3d.c =================================================================== --- libvo/vo_direct3d.c (revision 28063) +++ libvo/vo_direct3d.c (working copy) @@ -175,20 +175,20 @@ mp_msg(MSGT_VO, MSGL_V, "destroy_d3d_surfaces called\r\n"); /* Let's destroy the old (if any) D3D Surfaces */ - if (priv->locked_rect.pBits) { + if (priv->locked_rect.pBits) IDirect3DSurface9_UnlockRect(priv->d3d_surface); - priv->locked_rect.pBits = NULL; - } - if (priv->d3d_surface) { + priv->locked_rect.pBits = NULL; + + if (priv->d3d_surface) IDirect3DSurface9_Release(priv->d3d_surface); - priv->d3d_surface = NULL; - } - if (priv->d3d_backbuf) { + priv->d3d_surface = NULL; + + if (priv->d3d_backbuf) IDirect3DSurface9_Release(priv->d3d_backbuf); - priv->d3d_backbuf = NULL; - } + + priv->d3d_backbuf = NULL; } /** @brief Create D3D Offscreen and Backbuffer surfaces.