diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod
index 4f258cac79b828991908db263e86d7f34261f8c6..a0507510386202bd2cf5ca0fd126a86ff1c7d0d4 100644
--- a/lib/modules/Tools.pmod/Hilfe.pmod
+++ b/lib/modules/Tools.pmod/Hilfe.pmod
@@ -545,13 +545,20 @@ class StdinHilfe
     {
       write=predef::write;
       ::create();
+      object(Stdio.Readline) readline = Stdio.Readline();
+      readline->enable_history(512);
 
-      while(string s=Stdio.Readline.readline(strlen(input) ? ">> " : "> "))
+      for(;;)
       {
+	readline->set_prompt(strlen(input) ? ">> " : "> ");
+	string s=readline->read();
+	if(!s)
+	  break;
 	signal(signum("SIGINT"),signal_trap);
 	add_input_line(s+"\n");
 	signal(signum("SIGINT"));
       }
+      destruct(readline);
       write("Terminal closed.\n");
     }
 }