fg_vc->vc_rows);
        }
 
-       update_screen(vc_cons[fg_console].d);
+       if (fg_console != unit)
+               update_screen(vc_cons[fg_console].d);
 }
 
 /**
        struct vc_data *svc;
        struct fbcon_ops *ops = info->fbcon_par;
        int rows, cols;
+       unsigned long ret = 0;
 
        p = &fb_display[unit];
 
        rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
        cols /= vc->vc_font.width;
        rows /= vc->vc_font.height;
-       vc_resize(vc, cols, rows);
+       ret = vc_resize(vc, cols, rows);
 
-       if (con_is_visible(vc)) {
+       if (con_is_visible(vc) && !ret)
                update_screen(vc);
-       }
 }
 
 static __inline__ void ywrap_up(struct vc_data *vc, int count)