Index: uspace/app/taskbar/types/wndlist.h
===================================================================
--- uspace/app/taskbar/types/wndlist.h	(revision d19d15b88e89baa739e5dbe2179ac64e5fb389ca)
+++ uspace/app/taskbar/types/wndlist.h	(revision 6e91475d2748dc57c8470404beb69fc18a2c93c5)
@@ -39,4 +39,5 @@
 #include <adt/list.h>
 #include <gfx/coord.h>
+#include <stdbool.h>
 #include <ui/pbutton.h>
 #include <ui/fixed.h>
@@ -52,4 +53,6 @@
 	/** Window ID */
 	sysarg_t wnd_id;
+	/** Entry is visible */
+	bool visible;
 	/** Window button */
 	ui_pbutton_t *button;
Index: uspace/app/taskbar/wndlist.c
===================================================================
--- uspace/app/taskbar/wndlist.c	(revision d19d15b88e89baa739e5dbe2179ac64e5fb389ca)
+++ 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;
+		}
 	}
 
Index: uspace/srv/hid/display/window.c
===================================================================
--- uspace/srv/hid/display/window.c	(revision d19d15b88e89baa739e5dbe2179ac64e5fb389ca)
+++ uspace/srv/hid/display/window.c	(revision 6e91475d2748dc57c8470404beb69fc18a2c93c5)
@@ -469,6 +469,5 @@
 	gfx_rect_t old_rect;
 
-	log_msg(LOG_DEFAULT, LVL_DEBUG2
-	, "ds_window_update_move (%d, %d)",
+	log_msg(LOG_DEFAULT, LVL_DEBUG2, "ds_window_update_move (%d, %d)",
 	    (int) pos->x, (int) pos->y);
 
