Index: uspace/app/vterm/vterm.c
===================================================================
--- uspace/app/vterm/vterm.c	(revision 6a3d0c7d3c6877f7abc3f9784c37e626fd07986f)
+++ uspace/app/vterm/vterm.c	(revision 61b5b73da4751fa87cc6b1c1d81fe4796bc905e1)
@@ -55,5 +55,5 @@
 	}
 	
-	window_resize(main_window, 0, 0, 648, 510, WINDOW_PLACEMENT_ANY);
+	window_resize(main_window, 0, 0, 648, 508, WINDOW_PLACEMENT_ANY);
 	terminal_t *terminal_widget =
 	    create_terminal(window_root(main_window), 640, 480);
Index: uspace/lib/gui/common.c
===================================================================
--- uspace/lib/gui/common.c	(revision 6a3d0c7d3c6877f7abc3f9784c37e626fd07986f)
+++ uspace/lib/gui/common.c	(revision 61b5b73da4751fa87cc6b1c1d81fe4796bc905e1)
@@ -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 6a3d0c7d3c6877f7abc3f9784c37e626fd07986f)
+++ uspace/lib/gui/common.h	(revision 61b5b73da4751fa87cc6b1c1d81fe4796bc905e1)
@@ -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 6a3d0c7d3c6877f7abc3f9784c37e626fd07986f)
+++ uspace/lib/gui/window.c	(revision 61b5b73da4751fa87cc6b1c1d81fe4796bc905e1)
@@ -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 */
