diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index c1373b32248..082c0c6b8c5 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -2272,8 +2272,15 @@ bool QWindow::close() if (!d->platformWindow) return true; - QBoolBlocker inCloseReset(d->inClose); - return d->platformWindow->close(); + // The window might be deleted during close, + // as a result of delivering the close event. + QPointer guard(this); + d->inClose = true; + bool success = d->platformWindow->close(); + if (guard) + d->inClose = false; + + return success; } bool QWindowPrivate::participatesInLastWindowClosed() const