Index: console/console.c
===================================================================
--- console/console.c	(revision 1160f8dedddd04b402223af10ebc3b40509cbc14)
+++ console/console.c	(revision 7bc1e7408826e37d6ed07969d0e21322c49fca0a)
@@ -256,12 +256,14 @@
 	conn = &connections[active_console];
 
-	curs_visibility(0);
+	set_style(&conn->screenbuffer.style);
+	curs_goto(conn->screenbuffer.position_y, conn->screenbuffer.position_x);
 	if (interbuffer) {
 		for (i = 0; i < conn->screenbuffer.size_x; i++)
 			for (j = 0; j < conn->screenbuffer.size_y; j++) 
 				interbuffer[i + j*conn->screenbuffer.size_x] = *get_field_at(&(conn->screenbuffer),i, j);
-		
+		/* This call can preempt, but we are already at the end */
 		sync_send_2(fb_info.phone, FB_DRAW_TEXT_DATA, 0, 0, NULL, NULL);		
 	} else {
+		curs_visibility(0);
 		clrscr();
 		
@@ -273,8 +275,6 @@
 			}
 		
-	}
-	curs_goto(conn->screenbuffer.position_y, conn->screenbuffer.position_x);
-	set_style(&conn->screenbuffer.style);
-	curs_visibility(1);
+		curs_visibility(1);
+	}
 }
 
@@ -376,4 +376,5 @@
 			
 			screenbuffer_goto(&(connections[consnum].screenbuffer), IPC_GET_ARG2(call), IPC_GET_ARG1(call));
+			curs_goto(IPC_GET_ARG1(call),IPC_GET_ARG2(call));
 			
 			break;
