Index: uspace/lib/ui/src/window.c
===================================================================
--- uspace/lib/ui/src/window.c	(revision d6c4d408b32d32fe8f22cbd847b0ba04ff2f7767)
+++ uspace/lib/ui/src/window.c	(revision b27553c1c5a811aeba3e07e95c353cebbbed5ccd)
@@ -393,11 +393,11 @@
 	/* mgc != NULL iff client-side rendering */
 	if (window->mgc != NULL) {
-		/* Resize window bitmap */
+#ifdef CONFIG_WIN_DOUBLE_BUF
+		/*
+		 * Create new window bitmap in advance. If direct mapping,
+		 * will need do it after resizing the window.
+		 */
 		assert(window->bmp != NULL);
-
 		gfx_bitmap_params_init(&win_params);
-#ifndef CONFIG_WIN_DOUBLE_BUF
-		win_params.flags |= bmpf_direct_output;
-#endif
 		win_params.rect = nrect;
 
@@ -410,4 +410,5 @@
 		if (rc != EOK)
 			goto error;
+#endif
 	}
 
@@ -443,6 +444,22 @@
 	}
 
-	/* CLient side rendering? */
+	/* Client side rendering? */
 	if (window->mgc != NULL) {
+#ifndef CONFIG_WIN_DOUBLE_BUF
+		/* Window is resized, now we can map the window bitmap again */
+		gfx_bitmap_params_init(&win_params);
+		win_params.flags |= bmpf_direct_output;
+		win_params.rect = nrect;
+
+		rc = gfx_bitmap_create(window->realgc, &win_params, NULL,
+		    &win_bmp);
+		if (rc != EOK)
+			goto error;
+
+		rc = gfx_bitmap_get_alloc(win_bmp, &win_alloc);
+		if (rc != EOK)
+			goto error;
+#endif
+
 		mem_gc_retarget(window->mgc, &win_params.rect, &win_alloc);
 
