Index: uspace/lib/ipcgfx/src/server.c
===================================================================
--- uspace/lib/ipcgfx/src/server.c	(revision aef48ce8aecc465165469786693689c795d585ea)
+++ uspace/lib/ipcgfx/src/server.c	(revision fc4abcaefa9a26ceb2de3a504ef4a4ef4e39e201)
@@ -331,4 +331,6 @@
 {
 	ipc_gc_srv_t srvgc;
+	ipc_gc_srv_bitmap_t *bitmap;
+	link_t *link;
 
 	/* Accept the connection */
@@ -375,5 +377,24 @@
 	}
 
-	// TODO: Destroy all remaining bitmaps (+ emit warning?)
+	/*
+	 * Destroy all remaining bitmaps. A client should destroy all
+	 * the bitmaps before closing connection. But it could happen
+	 * that the client is misbehaving or was abruptly disconnected
+	 * (e.g. crashed).
+	 */
+	link = list_first(&srvgc.bitmaps);
+	while (link != NULL) {
+		bitmap = list_get_instance(link, ipc_gc_srv_bitmap_t,
+		    lbitmaps);
+
+		(void) gfx_bitmap_destroy(bitmap->bmp);
+		if (bitmap->myalloc)
+			as_area_destroy(bitmap->pixels);
+		list_remove(&bitmap->lbitmaps);
+		free(bitmap);
+
+		link = list_first(&srvgc.bitmaps);
+	}
+
 	return EOK;
 }
