diff --git a/ChangeLog b/ChangeLog
index 91a266abe0cba4ab87af596ecc96673c43b68f6a..8d0901bfc1919419df04becf07a1c7a3f43aa495 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,11 @@ CVS code -
   nstrncasecmp()
 	- When returning, use the "?" operator instead of an if/else
 	  clause. (DLR)
+- cut.c:
+  do_cut_text()
+	- When uncutting text in the process of copying it, always set
+	  placewewant, as do_uncut_text() does, so that the current line
+	  is always updated properly.
 - files.c:
   input_tab()
 	- Since the field precision operator used in the sprintf() uses
diff --git a/src/cut.c b/src/cut.c
index 13c79f44d9c8da3f1bfabe1b7e2dbf97b9c3bd6f..d2abf60d364d2acb6b219d8b7c33af186650be21 100644
--- a/src/cut.c
+++ b/src/cut.c
@@ -196,6 +196,10 @@ void do_cut_text(
 		copy_from_filestruct(cutbuffer, cutbottom);
 	}
 
+	/* Set the current place we want to where the text from the
+	 * cutbuffer ends. */
+	openfile->placewewant = xplustabs();
+
 	/* Set NO_NEWLINES back to what it was before, since we're done
 	 * disturbing the text. */
 	if (!old_no_newlines)