diff -udr screen-4.0.2.orig/comm.c screen-4.0.2/comm.c --- screen-4.0.2.orig/comm.c 2003-09-08 16:25:08.000000000 +0200 +++ screen-4.0.2/comm.c 2008-08-06 17:06:04.000000000 +0200 @@ -286,7 +286,7 @@ { "source", ARGS_1 }, { "split", NEED_DISPLAY|ARGS_0 }, { "startup_message", ARGS_1 }, - { "stuff", NEED_LAYER|ARGS_12 }, + { "stuff", NEED_LAYER|ARGS_012 }, #ifdef MULTIUSER { "su", NEED_DISPLAY|ARGS_012 }, #endif diff -udr screen-4.0.2.orig/process.c screen-4.0.2/process.c --- screen-4.0.2.orig/process.c 2003-09-18 14:53:54.000000000 +0200 +++ screen-4.0.2/process.c 2008-08-06 18:07:58.000000000 +0200 @@ -1018,6 +1018,18 @@ return i; } +static void +StuffFin(buf, len, data) +char *buf; +int len; +char *data; +{ + if (!len || !display) + return; + while(len) + LayProcess(&buf, &len); +} + /*ARGSUSED*/ void DoAction(act, key) @@ -1616,6 +1628,11 @@ case RC_STUFF: s = *args; n = *argl; + if (!args[0]) + { + Input("Stuff:", 7, INP_COOKED, StuffFin, NULL); + break; + } if (args[1]) { if (strcmp(s, "-k"))