diff --git a/ChangeLog b/ChangeLog
index 74866dd0285d9738b15a65aa067d66bfc2b87313..253cf79b07ea88d01c551c0dcabe63dfd40e93b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -199,6 +199,10 @@ CVS code -
   do_yesno_prompt()
 	- Handle the keys in a switch statement instead of a long if
 	  block, for simplicity. (DLR)
+- nano.c:
+  do_input()
+	- Don't blow away the cutbuffer when the shortcut we get is
+	  do_cut_till_end(). (DLR)
 - rcfile.c:
   parse_argument()
 	- Rename variable ptr_bak to ptr_save, for consistency. (DLR)
diff --git a/src/nano.c b/src/nano.c
index d156eb02203f37c767176faed13e864c7b3dc456..ccdac751949c88af2029f9f2d1ba6947ceb08f9e 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -1363,7 +1363,8 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
 		     * cutting or copying text. */
 		    if (s->func != do_cut_text_void
 #ifndef NANO_TINY
-			&& s->func != do_copy_text
+			&& s->func != do_copy_text && s->func !=
+			do_cut_till_end
 #endif
 			)
 			cutbuffer_reset();