Index: uspace/lib/display/src/disp_srv.c
===================================================================
--- uspace/lib/display/src/disp_srv.c	(revision 959b7ecef4838bb0b41711a3b77e4f3d3559af5c)
+++ uspace/lib/display/src/disp_srv.c	(revision dcac7562e88fee6f40fa87e059eccac68a5eb941)
@@ -109,6 +109,8 @@
 
 	rc = srv->ops->get_event(srv->arg, &wnd_id, &event);
-	if (rc != EOK)
+	if (rc != EOK) {
 		async_answer_0(icall, rc);
+		return;
+	}
 
 	/* Transfer event data */
Index: uspace/lib/display/src/display.c
===================================================================
--- uspace/lib/display/src/display.c	(revision 959b7ecef4838bb0b41711a3b77e4f3d3559af5c)
+++ uspace/lib/display/src/display.c	(revision dcac7562e88fee6f40fa87e059eccac68a5eb941)
@@ -189,4 +189,5 @@
 	async_exchange_end(exch);
 
+	list_remove(&window->lwindows);
 	free(window);
 	return rc;
