Index: uspace/app/taskbar/wndlist.c
===================================================================
--- uspace/app/taskbar/wndlist.c	(revision 2f106b0e95c4b8136d891d7dca5c7b8b250f0449)
+++ uspace/app/taskbar/wndlist.c	(revision 6e91475d2748dc57c8470404beb69fc18a2c93c5)
@@ -215,5 +215,7 @@
 	list_append(&entry->lentries, &wndlist->entries);
 
-	/* Set the button rectangle */
+	entry->visible = false;
+
+	/* Set the button rectangle and add it to layout, if applicable */
 	wndlist_set_entry_rect(wndlist, entry);
 
@@ -221,9 +223,5 @@
 	ui_pbutton_set_cb(entry->button, &wndlist_button_cb, (void *)entry);
 
-	rc = ui_fixed_add(wndlist->fixed, ui_pbutton_ctl(entry->button));
-	if (rc != EOK)
-		goto error;
-
-	if (paint) {
+	if (paint && entry->visible) {
 		rc = ui_pbutton_paint(entry->button);
 		if (rc != EOK)
@@ -339,8 +337,16 @@
 	if (rect.p1.x > wndlist->rect.p1.x) {
 		/* Make entry invisible */
-		rect.p0.x = 0;
-		rect.p0.y = 0;
-		rect.p1.x = 0;
-		rect.p1.y = 0;
+		if (entry->visible) {
+			ui_fixed_remove(wndlist->fixed,
+			    ui_pbutton_ctl(entry->button));
+			entry->visible = false;
+		}
+	} else {
+		/* Make entry visible */
+		if (!entry->visible) {
+			ui_fixed_add(wndlist->fixed,
+			    ui_pbutton_ctl(entry->button));
+			entry->visible = true;
+		}
 	}
 
