diff --git a/dlls/ole32/usrmarshal.c b/dlls/ole32/usrmarshal.c index c1b55422bd3..a1e1d890ace 100644 --- a/dlls/ole32/usrmarshal.c +++ b/dlls/ole32/usrmarshal.c @@ -1420,14 +1420,16 @@ void __RPC_USER HMETAFILEPICT_UserFree(ULONG *pFlags, HMETAFILEPICT *phMfp) { TRACE("(%s, &%p)\n", debugstr_user_flags(pFlags), *phMfp); - if ((LOWORD(*pFlags) == MSHCTX_INPROC) && *phMfp) + if ((LOWORD(*pFlags) != MSHCTX_INPROC) && *phMfp) { METAFILEPICT *mfpict; mfpict = GlobalLock(*phMfp); /* FIXME: raise an exception if mfpict is NULL? */ - + HMETAFILE_UserFree(pFlags, &mfpict->hMF); GlobalUnlock(*phMfp); + + GlobalFree(*phMfp); } }