diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java index fb6d2fea3ea3..47c9b548c907 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java @@ -103,11 +103,18 @@ public abstract class AbstractUpdateDialog extends DialogWrapper { protected void doOKAction() { if (doDownloadAndPrepare() && isShowConfirmation()) { final ApplicationEx app = ApplicationManagerEx.getApplicationEx(); - if (app.isRestartCapable()) { - app.restart(); - } else { - app.exit(true); - } + // do not stack several modal dialogs (native & swing) + app.invokeLater(new Runnable() { + @Override + public void run() { + if (app.isRestartCapable()) { + app.restart(); + } + else { + app.exit(true); + } + } + }); } super.doOKAction(); }