Index: uspace/app/edit/edit.c
===================================================================
--- uspace/app/edit/edit.c	(revision b077886e362778a610e96a41c1a0f66665d0e89c)
+++ uspace/app/edit/edit.c	(revision 99e5526942b631362a42f7ed64600868918dd9b0)
@@ -130,5 +130,7 @@
 
 	pane.rows = scr_rows - 1;
+	pane.columns = scr_columns;
 	pane.sh_row = 1;
+	pane.sh_column = 1;
 
 	/* Start with an empty sheet. */
@@ -402,5 +404,4 @@
 static void pane_row_range_display(int r0, int r1)
 {
-	int width;
 	int i, j, fill;
 	spt_t rb, re, dep;
@@ -415,12 +416,12 @@
 	console_goto(con, 0, 0);
 	for (i = r0; i < r1; ++i) {
-		sheet_get_row_width(&doc.sh, pane.sh_row + i, &width);
-
-		/* Determine row starting point. */
-		rbc.row = pane.sh_row + i; rbc.column = 1;
+		/* Starting point for row display */
+		rbc.row = pane.sh_row + i;
+		rbc.column = pane.sh_column;
 		sheet_get_cell_pt(&doc.sh, &rbc, dir_before, &rb);
 
-		/* Determine row ending point. */
-		rec.row = pane.sh_row + i; rec.column = width + 1;
+		/* Ending point for row display */
+		rec.row = pane.sh_row + i;
+		rec.column = pane.sh_column + pane.columns;
 		sheet_get_cell_pt(&doc.sh, &rec, dir_before, &re);
 
@@ -494,5 +495,6 @@
 
 	spt_get_coord(&caret_pt, &coord);
-	console_goto(con, coord.column - 1, coord.row - pane.sh_row);
+	console_goto(con, coord.column - pane.sh_column,
+	    coord.row - pane.sh_row);
 }
 
@@ -555,5 +557,5 @@
 	spt_get_coord(&pt, &coord);
 
-	/* Scroll pane as necessary. */
+	/* Scroll pane vertically. */
 
 	if (coord.row < pane.sh_row) {
@@ -561,4 +563,5 @@
 		pane.rflags |= REDRAW_TEXT;
 	}
+
 	if (coord.row > pane.sh_row + pane.rows - 1) {
 		pane.sh_row = coord.row - pane.rows + 1;
@@ -566,6 +569,17 @@
 	}
 
+	/* Scroll pane horizontally. */
+
+	if (coord.column < pane.sh_column) {
+		pane.sh_column = coord.column;
+		pane.rflags |= REDRAW_TEXT;
+	}
+
+	if (coord.column > pane.sh_column + pane.columns - 1) {
+		pane.sh_column = coord.column - pane.columns + 1;
+		pane.rflags |= REDRAW_TEXT;
+	}
+
 	pane.rflags |= (REDRAW_CARET | REDRAW_STATUS);
-
 }
 
