diff --git a/lib/master.pike.in b/lib/master.pike.in
index 9c46d015e7cdbb68dfdda0293685dc7e6f01075a..fd636add8b40092be8d3e3b11cd28bb31b477bea 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -1,4 +1,4 @@
-/* $Id: master.pike.in,v 1.42 1999/03/17 21:44:52 hubbe Exp $
+/* $Id: master.pike.in,v 1.43 1999/03/19 11:14:27 hubbe Exp $
  * 
  * Master-file for Pike.
  *
@@ -1095,7 +1095,8 @@ string describe_backtrace(mixed *trace)
   int e;
   string ret;
 
-  if(arrayp(trace) && sizeof(trace)==2 && stringp(trace[0]))
+  if((arrayp(trace) && sizeof(trace)==2 && stringp(trace[0])) ||
+     (objectp(trace) && trace->is_generic_error))
   {
     ret=trace[0];
     trace=trace[1];
diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod
index a0507510386202bd2cf5ca0fd126a86ff1c7d0d4..6338c38b4c38641946fe5170dfe9088ee510a9fa 100644
--- a/lib/modules/Tools.pmod/Hilfe.pmod
+++ b/lib/modules/Tools.pmod/Hilfe.pmod
@@ -83,6 +83,11 @@ import Getopt;
 	{
 	  c[1]=c[1][sizeof(backtrace())..];
 	  write(describe_backtrace(c));
+	}
+	else if(objectp(c) && c->is_generic_error)
+	{
+	  c->__backtrace=c->__backtrace[sizeof(backtrace())..];
+	  write(describe_backtrace(c));
 	}else{
 	  write(sprintf("Error in evalutation: %O\n",c));
 	}