diff --git a/ChangeLog b/ChangeLog
index cc85b52dda1fd9fc7d0af7ef5a34c189c2e8a82c..b878031eee59e3c47b6d99f2266675c26436df85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -40,6 +40,8 @@ CVS code -
 - search.c:
   search_init()
 	- Fix a missing free (Rocco).
+  do_gotoline() 
+	- Set placewewant if we actually move to a different line.
 - utils.c:
   stristr() 
 	- Defined regardless of NANO_SMALL (noticed by Jordi).
diff --git a/search.c b/search.c
index b96b214b6f222b4d8cdb539c68c068341086f37d..fdb025d47b416df7cd540dbc481bfc1d7715cb3f 100644
--- a/search.c
+++ b/search.c
@@ -844,6 +844,7 @@ int do_gotoline(int line, int save_pos)
     else
 	edit_update(current, CENTER);
 
+    placewewant = xplustabs();
     goto_abort();
     return 1;
 }