Index: uspace/lib/ui/src/msgdialog.c
===================================================================
--- uspace/lib/ui/src/msgdialog.c	(revision a188131444517e83d92103dac71acb5f03aae769)
+++ uspace/lib/ui/src/msgdialog.c	(revision b0178856327e4f27aa16082db4022897e58d8f86)
@@ -285,4 +285,6 @@
 	if (dialog->cb != NULL && dialog->cb->close != NULL)
 		dialog->cb->close(dialog, dialog->arg);
+	else
+		ui_msg_dialog_destroy(dialog);
 }
 
@@ -310,4 +312,6 @@
 				dialog->cb->button(dialog, dialog->arg, 0);
 				return;
+			} else {
+				ui_msg_dialog_destroy(dialog);
 			}
 		} else if (event->key == KC_ESCAPE) {
@@ -316,4 +320,6 @@
 				dialog->cb->close(dialog, dialog->arg);
 				return;
+			} else {
+				ui_msg_dialog_destroy(dialog);
 			}
 		}
@@ -337,4 +343,6 @@
 				dialog->cb->button(dialog, dialog->arg, i);
 		}
+	} else {
+		ui_msg_dialog_destroy(dialog);
 	}
 }
