Index: uspace/lib/libc/include/ipc/fb.h
===================================================================
--- uspace/lib/libc/include/ipc/fb.h	(revision 4a62ec952c0abab08fd690a77afe56cac4aee95f)
+++ uspace/lib/libc/include/ipc/fb.h	(revision 42ec9198d3475719dcc6743cb7e015e9ecc84a50)
@@ -48,4 +48,5 @@
 	FB_VIEWPORT_CREATE,
 	FB_VIEWPORT_DELETE,
+	FB_VIEWPORT_INVALIDATE,
 	FB_SET_STYLE,
 	FB_SET_COLOR,
Index: uspace/srv/console/gcons.c
===================================================================
--- uspace/srv/console/gcons.c	(revision 4a62ec952c0abab08fd690a77afe56cac4aee95f)
+++ uspace/srv/console/gcons.c	(revision 42ec9198d3475719dcc6743cb7e015e9ecc84a50)
@@ -84,4 +84,10 @@
 	async_msg_1(fbphone, FB_VIEWPORT_SWITCH, vp);
 }
+
+static void vp_invalidate(int vp)
+{
+	async_msg_1(fbphone, FB_VIEWPORT_INVALIDATE, vp);
+}
+
 
 /** Create view port */
@@ -158,4 +164,5 @@
 	redraw_state(consnum);
 
+	vp_invalidate(console_vp);
 	vp_switch(console_vp);
 }
@@ -356,4 +363,5 @@
 	for (i = 0; i < CONSOLE_COUNT; i++)
 		redraw_state(i);
+	vp_invalidate(console_vp);
 	vp_switch(console_vp);
 }
Index: uspace/srv/fb/fb.c
===================================================================
--- uspace/srv/fb/fb.c	(revision 4a62ec952c0abab08fd690a77afe56cac4aee95f)
+++ uspace/srv/fb/fb.c	(revision 42ec9198d3475719dcc6743cb7e015e9ecc84a50)
@@ -140,4 +140,5 @@
 	bb_cell_t *backbuf;
 	unsigned int bbsize;
+	bool bb_invalid;
 } viewport_t;
 
@@ -560,4 +561,5 @@
 	viewports[i].bbsize = bbsize;
 	viewports[i].backbuf = backbuf;
+	viewports[i].bb_invalid = false;
 	
 	viewports[i].initialized = true;
@@ -884,5 +886,6 @@
 		if (glyph != data[i].character ||
 		    rgb.fg_color != bbp->fg_color ||
-		    rgb.bg_color != bbp->bg_color) {
+		    rgb.bg_color != bbp->bg_color ||
+		    vport->bb_invalid) {
 			bbp->glyph = data[i].character;	
 
@@ -1624,4 +1627,14 @@
 			retval = EOK;
 			break;
+		case FB_VIEWPORT_INVALIDATE:
+			i = IPC_GET_ARG1(call);
+			if (i >= MAX_VIEWPORTS) {
+				retval = EINVAL;
+				break;
+			}
+			viewports[i].bb_invalid = true;
+			retval = EOK;
+			break;
+		
 		case FB_SET_STYLE:
 			retval = fb_set_style(vport, IPC_GET_ARG1(call));
