Index: uspace/app/fontedit/fontedit.c
===================================================================
--- uspace/app/fontedit/fontedit.c	(revision 16357ec5aa427de771a1594454a86fbe93cebbb8)
+++ uspace/app/fontedit/fontedit.c	(revision efca2e48da9fdf40325200492096839a3eab0673)
@@ -166,4 +166,8 @@
 	case KC_4:
 		font_edit_adjust_advance(fedit, +1);
+		break;
+	case KC_X:
+		(void) gfx_glyph_bmp_clear(fedit->gbmp);
+		font_edit_paint(fedit);
 		break;
 	default:
Index: uspace/lib/gfxfont/include/gfx/glyph_bmp.h
===================================================================
--- uspace/lib/gfxfont/include/gfx/glyph_bmp.h	(revision 16357ec5aa427de771a1594454a86fbe93cebbb8)
+++ uspace/lib/gfxfont/include/gfx/glyph_bmp.h	(revision efca2e48da9fdf40325200492096839a3eab0673)
@@ -49,4 +49,5 @@
 extern errno_t gfx_glyph_bmp_setpix(gfx_glyph_bmp_t *, gfx_coord_t,
     gfx_coord_t, int);
+extern errno_t gfx_glyph_bmp_clear(gfx_glyph_bmp_t *);
 
 #endif
Index: uspace/lib/gfxfont/src/glyph_bmp.c
===================================================================
--- uspace/lib/gfxfont/src/glyph_bmp.c	(revision 16357ec5aa427de771a1594454a86fbe93cebbb8)
+++ uspace/lib/gfxfont/src/glyph_bmp.c	(revision efca2e48da9fdf40325200492096839a3eab0673)
@@ -229,4 +229,30 @@
 }
 
+/** Clear glyph bitmap
+ *
+ * @param bmp Glyph bitmap
+ *
+ * @return EOK on sucesss, ENOMEM if out of memory
+ */
+errno_t gfx_glyph_bmp_clear(gfx_glyph_bmp_t *bmp)
+{
+	int *npixels;
+
+	/* Allocate new pixel array */
+	npixels = calloc(sizeof(int), 1);
+	if (npixels == NULL)
+		return ENOMEM;
+
+	/* Switch new and old data */
+	free(bmp->pixels);
+	bmp->pixels = npixels;
+	bmp->rect.p0.x = 0;
+	bmp->rect.p0.y = 0;
+	bmp->rect.p1.x = 0;
+	bmp->rect.p1.y = 0;
+
+	return EOK;
+}
+
 /** Extend glyph bitmap to cover a patricular pixel.
  *
Index: uspace/lib/gfxfont/test/glyph_bmp.c
===================================================================
--- uspace/lib/gfxfont/test/glyph_bmp.c	(revision 16357ec5aa427de771a1594454a86fbe93cebbb8)
+++ uspace/lib/gfxfont/test/glyph_bmp.c	(revision efca2e48da9fdf40325200492096839a3eab0673)
@@ -342,5 +342,5 @@
 
 /** Test glyph_bmp_setpix() properly extends pixel array */
-PCUT_TEST(setpix_externd)
+PCUT_TEST(setpix_extend)
 {
 	gfx_font_props_t fprops;
@@ -406,4 +406,75 @@
 		}
 	}
+
+	gfx_glyph_bmp_close(bmp);
+
+	gfx_glyph_destroy(glyph);
+
+	gfx_font_close(font);
+	gfx_typeface_destroy(tface);
+	rc = gfx_context_delete(gc);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+}
+
+/** Test glyph_bmp_clear() properly clears bitmap */
+PCUT_TEST(clear)
+{
+	gfx_font_props_t fprops;
+	gfx_font_metrics_t fmetrics;
+	gfx_typeface_t *tface;
+	gfx_font_t *font;
+	gfx_glyph_metrics_t gmetrics;
+	gfx_glyph_t *glyph;
+	gfx_context_t *gc;
+	gfx_glyph_bmp_t *bmp;
+	gfx_rect_t rect;
+	test_gc_t tgc;
+	int pix;
+	errno_t rc;
+
+	rc = gfx_context_new(&test_ops, (void *) &tgc, &gc);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	rc = gfx_typeface_create(gc, &tface);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	gfx_font_props_init(&fprops);
+	gfx_font_metrics_init(&fmetrics);
+	rc = gfx_font_create(tface, &fprops, &fmetrics, &font);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	gfx_glyph_metrics_init(&gmetrics);
+	gmetrics.advance = 1;
+
+	rc = gfx_glyph_create(font, &gmetrics, &glyph);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	bmp = NULL;
+
+	rc = gfx_glyph_bmp_open(glyph, &bmp);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+	PCUT_ASSERT_NOT_NULL(bmp);
+
+	/* Set some pixels */
+
+	rc = gfx_glyph_bmp_setpix(bmp, 0, 0, 1);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	rc = gfx_glyph_bmp_setpix(bmp, 1, 1, 1);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	/* Clear the bitmap and check */
+	gfx_glyph_bmp_clear(bmp);
+
+	gfx_glyph_bmp_get_rect(bmp, &rect);
+	PCUT_ASSERT_INT_EQUALS(0, rect.p0.x);
+	PCUT_ASSERT_INT_EQUALS(0, rect.p0.y);
+	PCUT_ASSERT_INT_EQUALS(0, rect.p1.x);
+	PCUT_ASSERT_INT_EQUALS(0, rect.p1.y);
+
+	pix = gfx_glyph_bmp_getpix(bmp, 0, 0);
+	PCUT_ASSERT_INT_EQUALS(0, pix);
+	pix = gfx_glyph_bmp_getpix(bmp, 1, 1);
+	PCUT_ASSERT_INT_EQUALS(0, pix);
 
 	gfx_glyph_bmp_close(bmp);
