Index: uspace/app/edit/edit.c
===================================================================
--- uspace/app/edit/edit.c	(revision 8786aa5c151fa5280b899437cecc4930c636823b)
+++ uspace/app/edit/edit.c	(revision 8190e6374ca3cbd6ae6511780cbf11f5d24417e2)
@@ -98,4 +98,5 @@
 static bool done;
 static pane_t pane;
+static bool cursor_visible;
 
 static int scr_rows, scr_columns;
@@ -108,4 +109,8 @@
 /** Maximum filename length that can be entered. */
 #define INFNAME_MAX_LEN 128
+
+static void cursor_show(void);
+static void cursor_hide(void);
+static void cursor_setvis(bool visible);
 
 static void key_handle_unmod(console_event_t const *ev);
@@ -199,4 +204,7 @@
 
 	/* Initial display */
+	cursor_visible = true;
+
+	cursor_hide();
 	console_clear(con);
 	pane_text_display();
@@ -205,5 +213,5 @@
 		status_display("File not found. Starting empty file.");
 	pane_caret_display();
-
+	cursor_show();
 
 	done = false;
@@ -230,4 +238,6 @@
 		/* Redraw as necessary. */
 
+		cursor_hide();
+
 		if (pane.rflags & REDRAW_TEXT)
 			pane_text_display();
@@ -238,4 +248,6 @@
 		if (pane.rflags & REDRAW_CARET)
 			pane_caret_display();
+
+		cursor_show();
 	}
 
@@ -243,4 +255,22 @@
 
 	return 0;
+}
+
+static void cursor_show(void)
+{
+	cursor_setvis(true);
+}
+
+static void cursor_hide(void)
+{
+	cursor_setvis(false);
+}
+
+static void cursor_setvis(bool visible)
+{
+	if (cursor_visible != visible) {
+		console_cursor_visibility(con, visible);
+		cursor_visible = visible;
+	}
 }
 
