Index: uspace/lib/gui/common.c
===================================================================
--- uspace/lib/gui/common.c	(revision 62fbb7ef714f1160227d2fa29a651dfab2544a5b)
+++ uspace/lib/gui/common.c	(revision 0dd022ece56ab1e6d47f7b36ab4964c1b93482bb)
@@ -38,4 +38,35 @@
 #include "common.h"
 
+#define CROSS_WIDTH   14
+#define CROSS_HEIGHT  14
+
+static uint8_t cross_texture[] = {
+	0x00, 0x00, 0x02, 0x08, 0x04, 0x04, 0x08, 0x02, 0x10, 0x01, 0xa0, 0x00,
+	0x40, 0x00, 0xa0, 0x00, 0x10, 0x01, 0x08, 0x02, 0x04, 0x04, 0x02, 0x08,
+	0x01, 0x10, 0x00, 0x00
+};
+
+static uint8_t cross_mask[] = {
+	0x00, 0x00, 0x02, 0x18, 0x06, 0x0c, 0x0c, 0x06, 0x18, 0x03, 0xb0, 0x01,
+	0xe0, 0x00, 0xe0, 0x00, 0xb0, 0x01, 0x18, 0x03, 0x0c, 0x06, 0x06, 0x0c,
+	0x03, 0x18, 0x00, 0x00
+};
+
+void draw_icon_cross(surface_t *surface, sysarg_t hpos, sysarg_t vpos,
+    pixel_t highlight, pixel_t shadow)
+{
+	for (unsigned int y = 0; y < CROSS_HEIGHT; y++) {
+		for (unsigned int x = 0; x < CROSS_WIDTH; x++) {
+			size_t offset = y * ((CROSS_WIDTH - 1) / 8 + 1) + x / 8;
+			bool visible = cross_mask[offset] & (1 << (x % 8));
+			pixel_t pixel = (cross_texture[offset] & (1 << (x % 8))) ?
+			    highlight : shadow;
+			
+			if (visible)
+				surface_put_pixel(surface, hpos + x, vpos + y, pixel);
+		}
+	}
+}
+
 void draw_bevel(drawctx_t *drawctx, source_t *source, sysarg_t hpos,
     sysarg_t vpos, sysarg_t width, sysarg_t height, pixel_t highlight,
Index: uspace/lib/gui/common.h
===================================================================
--- uspace/lib/gui/common.h	(revision 62fbb7ef714f1160227d2fa29a651dfab2544a5b)
+++ uspace/lib/gui/common.h	(revision 0dd022ece56ab1e6d47f7b36ab4964c1b93482bb)
@@ -40,4 +40,5 @@
 #include <drawctx.h>
 
+extern void draw_icon_cross(surface_t *, sysarg_t, sysarg_t, pixel_t, pixel_t);
 extern void draw_bevel(drawctx_t *, source_t *, sysarg_t, sysarg_t, sysarg_t,
     sysarg_t, pixel_t, pixel_t);
Index: uspace/lib/gui/window.c
===================================================================
--- uspace/lib/gui/window.c	(revision 62fbb7ef714f1160227d2fa29a651dfab2544a5b)
+++ uspace/lib/gui/window.c	(revision 0dd022ece56ab1e6d47f7b36ab4964c1b93482bb)
@@ -63,7 +63,7 @@
 static sysarg_t border_thickness = 4;
 static sysarg_t bevel_thickness = 1;
-static sysarg_t header_height = 22;
+static sysarg_t header_height = 20;
 static sysarg_t header_min_width = 40;
-static sysarg_t close_thickness = 22;
+static sysarg_t close_thickness = 20;
 
 static pixel_t color_highlight = PIXEL(255, 255, 255, 255);
@@ -155,7 +155,6 @@
 	/* Close button icon */
 	
-	draw_bevel(&drawctx, &source, close_hpos + 6, close_vpos + 9,
-	    close_thickness - 12, close_thickness - 18, color_highlight,
-	    color_shadow);
+	draw_icon_cross(surface, close_hpos + 3, close_vpos + 3,
+	    color_highlight, color_shadow);
 	
 	/* Window caption */
