diff --git a/objects/dc.c b/objects/dc.c index be38bf043e1..24b16ef6dc8 100644 --- a/objects/dc.c +++ b/objects/dc.c @@ -745,7 +745,7 @@ BOOL WINAPI DeleteDC( HDC hdc ) DWORD data = dc->dwHookData; GDI_ReleaseObj( hdc ); if (!proc( hdc, DCHC_DELETEDC, data, 0 )) return FALSE; - if (!(dc = DC_GetDCPtr( hdc ))) return FALSE; + if (!(dc = DC_GetDCPtr( hdc ))) return TRUE; /* deleted by the hook */ } } diff --git a/windows/dce.c b/windows/dce.c index 4e718e43bf4..d9cf0d7cae2 100644 --- a/windows/dce.c +++ b/windows/dce.c @@ -623,6 +623,7 @@ BOOL16 WINAPI DCHook16( HDC16 hDC, WORD code, DWORD data, LPARAM lParam ) WARN("Application trying to delete a busy DC\n"); retv = FALSE; } + else DCE_FreeDCE( dce ); break; default: