diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 0ba56334b2..6be083a03d 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -2125,7 +2125,11 @@ long wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam break; case WM_DESTROY: - processed = HandleDestroy(); + // never set processed to TRUE and *always* pass WM_DESTROY to + // DefWindowProc() as Windows may do some internal cleanup when + // processing it and failing to pass the message along may cause + // memory and resource leaks! + (void)HandleDestroy(); break; case WM_MOVE: