Index: ChangeLog
===================================================================
RCS file: /project/slime/cvsroot/slime/ChangeLog,v
retrieving revision 1.1341
diff -u -p -r1.1341 ChangeLog
--- ChangeLog	27 Mar 2008 21:59:45 -0000	1.1341
+++ ChangeLog	8 Apr 2008 09:53:24 -0000
@@ -1,3 +1,11 @@
+2008-04-08  G?bor Melis  <mega@retes.hu>
+
+	* swank-allegro.lisp (globalize-standard-streams): New function;
+	sets the global value of *STANDARD-OUTPUT* and co that's hidden by
+	allegro's repl bindings.
+	(initialize-multiprocessing): call GLOBALIZE-STANDARD-STREAMS to
+	fix *GLOBALLY-REDIRECT-IO*
+
 2008-03-27  Martin Simmons <martin@lispworks.com>
 
 	* swank-lispworks.lisp (map-error-database): Make mapping work for
Index: swank-allegro.lisp
===================================================================
RCS file: /project/slime/cvsroot/slime/swank-allegro.lisp,v
retrieving revision 1.101
diff -u -p -r1.101 swank-allegro.lisp
--- swank-allegro.lisp	9 Feb 2008 18:47:05 -0000	1.101
+++ swank-allegro.lisp	8 Apr 2008 09:53:25 -0000
@@ -604,7 +604,18 @@
 
 ;;;; Multithreading
 
+;;; The allegro listener binds the standard streams. Global IO
+;;; redirection is done in the "Initial Lisp Listener" so it sets the
+;;; value of that thread local binding. Thus, threads started by for
+;;; instance MP:PROCESS-RUN-FUNCTION do not see the right value.
+(defun globalize-standard-streams ()
+  (mapc (lambda (symbol)
+          (setf (sys:global-symbol-value symbol) (symbol-value symbol)))
+        '(*standard-output* *error-output* *trace-output* *standard-input*
+          *debug-io* *query-io* *terminal-io*)))
+
 (defimplementation initialize-multiprocessing (continuation)
+  (globalize-standard-streams)
   (mp:start-scheduler)
   (funcall continuation))
