diff --git a/ChangeLog b/ChangeLog
index af35f83cf6e8b24dfc6642162a1c140fe03d4996..17d70cd204e8beaee532fa0206926db0d71c0066 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -39,7 +39,7 @@ CVS code -
 	  do_help() (all moved to help.c). (DLR)
 	- Tweak a few functions to remove the assumption that the file
 	  always ends in a magicline.  Changes to do_cut_till_end(),
-	  open_buffer(), read_file(), write_file(), and
+	  open_buffer(), read_file(), write_file(), do_last_line(), and
 	  do_wordlinechar_count(). (DLR)
 	- Tweak a few functions to rely on fileage and filebot instead
 	  of NULL for their checks to detect the top or bottom of the
diff --git a/src/move.c b/src/move.c
index 9e1a85aa6ff95e6ca94ed6000f0c59a7abc15f21..36053551b2ca548084804db9205fa8ff927d187a 100644
--- a/src/move.c
+++ b/src/move.c
@@ -50,8 +50,8 @@ void do_last_line(void)
     check_statusblank();
 
     openfile->current = openfile->filebot;
-    openfile->current_x = 0;
-    openfile->placewewant = 0;
+    openfile->current_x = strlen(openfile->filebot->data);
+    openfile->placewewant = xplustabs();
     openfile->current_y = editwinrows - 1;
 
     edit_redraw(current_save, pww_save);