diff --git a/src/conio/bitmap_con.c b/src/conio/bitmap_con.c
index 6cdb17a67afc830feb8f7bbc3334f22c32a1325e..7f96a840d289345c2e47c820de5f5b79e6c5d453 100644
--- a/src/conio/bitmap_con.c
+++ b/src/conio/bitmap_con.c
@@ -504,6 +504,7 @@ static int bitmap_draw_one_char(unsigned int xpos, unsigned int ypos)
 	WORD	sch;
 	struct vstat_vmem *vmem_ptr;
 	BOOL	changed = FALSE;
+	BOOL	draw_fg = TRUE;
 
 	if(!bitmap_initialized) {
 		return(-1);
@@ -546,21 +547,20 @@ static int bitmap_draw_one_char(unsigned int xpos, unsigned int ypos)
 		this_font = font[0];
 	fontoffset=(sch&0xff)*vstat.charheight;
 
+	draw_fg = ((!((sch & 0x8000) && !vstat.blink)) || vstat.no_blink);
 	for(y=0; y<vstat.charheight; y++) {
-		if ((!((sch & 0x8000) && !vstat.blink)) || vstat.no_blink) {
-			for(x=0; x<vstat.charwidth; x++) {
-				if(this_font[fontoffset] & (0x80 >> x)) {
-					if (screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]!=fg) {
-						changed=TRUE;
-						screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]=fg;
-					}
+		for(x=0; x<vstat.charwidth; x++) {
+			if(this_font[fontoffset] & (0x80 >> x) && draw_fg) {
+				if (screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]!=fg) {
+					changed=TRUE;
+					screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]=fg;
 				}
-				else
-					if (screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]!=bg) {
-						changed=TRUE;
-						screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]=bg;
-					}
 			}
+			else
+				if (screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]!=bg) {
+					changed=TRUE;
+					screen.screen[PIXEL_OFFSET(screen, xoffset+x, yoffset+y)]=bg;
+				}
 		}
 		fontoffset++;
 	}