--- toast	2003/10/13 04:55:05	1.215
+++ toast	2003/10/13 05:15:58	1.216
@@ -17,9 +17,19 @@
 
 ##############################################################################
 
-sub trace($)
+my($rcsid) = q$Id$;
+$rcsid =~ /^Id: (.+),v (\S+) (\S+ \S+) (\S+) Exp (\S+ )?$/ || die;
+my($myname, $myversion, $mytimestamp, $myauthor) = ($1, $2, $3, $4);
+$myversion .= "+" if $5; # if this version may contain changes not in RCS
+my($myurl) = "http://www.toastball.net/toast/";
+my($genby) = "generated by $myname version $myversion [$myurl]";
+$myname eq "toast" && $myauthor eq "zaphod" || die; # avoid accidents w/ CVS
+
+##############################################################################
+
+sub trace(;$)
 {
-  my($i, $out, $prev) = (shift, "", "");
+  my($i, $out, $prev) = (shift || 1, "", "");
   while(my($package, $file, $line) = caller($i++))
   {
     $out .= ($prev eq $file ? "/" : $out ? "; $file: " : "$file: ") . $line;
@@ -30,18 +40,8 @@
 
 sub error(@)
 {
-  die(join('', @_) || "assertion failed", "\n[" . trace(1) . "]\n");
+  die(join('', @_) || "assertion failed", "\n[" . trace . " v$myversion]\n");
 }
-
-##############################################################################
-
-my($rcsid) = q$Id$;
-$rcsid =~ /^Id: (.+),v (\S+) (\S+ \S+) (\S+) Exp (\S+ )?$/ || error;
-my($myname, $myversion, $mytimestamp, $myauthor) = ($1, $2, $3, $4);
-$myversion .= "+" if $5; # if this version may contain changes not in RCS
-my($myurl) = "http://www.toastball.net/toast/";
-my($genby) = "generated by $myname version $myversion [$myurl]";
-$myname eq "toast" && $myauthor eq "zaphod" || error; # avoid accidents w/ CVS
 
 ##############################################################################