From: Pavel Machek <pavel@ucw.cz>

Softcursor was broken for half of 2.5 series.  This fixes it by first
hiding cursor _then_ hiding softcursor.  Very simple mistake...



 drivers/char/vt.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff -puN drivers/char/vt.c~softcursor-fix drivers/char/vt.c
--- 25/drivers/char/vt.c~softcursor-fix	2004-01-03 11:45:34.000000000 -0800
+++ 25-akpm/drivers/char/vt.c	2004-01-03 11:45:34.000000000 -0800
@@ -530,17 +530,22 @@ static void add_softcursor(int currcons)
 		sw->con_putc(vc_cons[currcons].d, i, y, x);
 }
 
-static void hide_cursor(int currcons)
+static void hide_softcursor(int currcons)
 {
-	if (currcons == sel_cons)
-		clear_selection();
 	if (softcursor_original != -1) {
 		scr_writew(softcursor_original,(u16 *) pos);
 		if (DO_UPDATE)
 			sw->con_putc(vc_cons[currcons].d, softcursor_original, y, x);
 		softcursor_original = -1;
 	}
+}
+
+static void hide_cursor(int currcons)
+{
+	if (currcons == sel_cons)
+		clear_selection();
 	sw->con_cursor(vc_cons[currcons].d,CM_ERASE);
+	hide_softcursor(currcons);
 }
 
 static void set_cursor(int currcons)

_