$NetBSD: patch-ag,v 1.1 2007/05/07 12:42:19 tnn Exp $

--- src/lisp.c.orig	2007-05-07 14:20:07.000000000 +0200
+++ src/lisp.c
@@ -2493,7 +2493,7 @@ handler.
     rep_DECLARE1(error, rep_SYMBOLP);
 
     on_error = Fsymbol_value (Qbacktrace_on_error, Qt);
-    if (on_error == Qt
+    if ((on_error == Qt && error != Qend_of_stream)
 	|| (rep_CONSP(on_error)
 	    && (tmp = Fmemq (error, on_error)) && tmp != Qnil))
     {
@@ -2504,7 +2504,7 @@ handler.
 
     errlist = Fcons(error, data);
     on_error = Fsymbol_value(Qdebug_on_error, Qt);
-    if(((on_error != rep_NULL && on_error == Qt)
+    if(((on_error != rep_NULL && on_error == Qt && error != Qend_of_stream)
 	|| (rep_CONSP(on_error)
 	    && (tmp = Fmemq(error, on_error)) && !rep_NILP(tmp))))
     {
@@ -2705,13 +2705,13 @@ ARGLIST had been evaluated or not before
 		{
 		    char buf[256];
 #ifdef HAVE_SNPRINTF
-		    snprintf (buf, sizeof (buf), " at %s:%d",
+		    snprintf (buf, sizeof (buf), " at %s:%ld",
 			      rep_STR (rep_CAR (origin)),
-			      rep_INT (rep_CDR (origin)));
+			      (long) rep_INT (rep_CDR (origin)));
 #else
-		    sprintf (buf, " at %s:%d",
+		    sprintf (buf, " at %s:%ld",
 			     rep_STR (rep_CAR (origin)),
-			     rep_INT (rep_CDR (origin)));
+			     (long) rep_INT (rep_CDR (origin)));
 #endif
 		    rep_stream_puts (strm, buf, -1, rep_FALSE);
 		}
