diff --git a/src/apply_low.h b/src/apply_low.h
index 48034a000dd3d1763bea466c99a51963d0cd3051..e034eb2f3e12d638c163ff007107e3fc50b72bf6 100644
--- a/src/apply_low.h
+++ b/src/apply_low.h
@@ -62,14 +62,14 @@
 	describe(p);
 	fprintf(stderr,"########Object is:\n");
 	describe(o);
-	fatal("Function index out of range.\n");
+	Pike_fatal("Function index out of range.\n");
       }
 #endif
 
       ref = p->identifier_references + fun;
 #ifdef PIKE_DEBUG
       if(ref->inherit_offset>=p->num_inherits)
-	fatal("Inherit offset out of range in program.\n");
+	Pike_fatal("Inherit offset out of range in program.\n");
 #endif
 
       /* init a new evaluation pike_frame */
@@ -132,7 +132,7 @@
 #ifdef PIKE_DEBUG
       if(new_frame->fun == scope->fun)
       {
-	fatal("Que? A function cannot be parented by itself!\n");
+	Pike_fatal("Que? A function cannot be parented by itself!\n");
       }
 #endif
 #else
@@ -248,7 +248,7 @@
 
 #ifdef PIKE_DEBUG
 	if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE)
-	  fatal("Pike code called within gc.\n");
+	  Pike_fatal("Pike code called within gc.\n");
 #endif
 
 	debug_malloc_touch(Pike_fp);
@@ -259,7 +259,7 @@
 
 #ifdef PIKE_DEBUG
 	if(num_locals < num_args)
-	  fatal("Wrong number of arguments or locals in function def.\n"
+	  Pike_fatal("Wrong number of arguments or locals in function def.\n"
 		"num_locals: %d < num_args: %d\n",
 		num_locals, num_args);
 #endif
@@ -320,7 +320,7 @@
 #if 0
 #ifdef PIKE_DEBUG
       if(Pike_fp!=new_frame)
-	fatal("Frame stack out of whack!\n");
+	Pike_fatal("Frame stack out of whack!\n");
 #endif
 #endif
       
diff --git a/src/array.c b/src/array.c
index 88b73bff0e1a57ce7bb35eea0b2f159742a0cb72..f997142f65fcdfc31f7a67ec92d2582fbd783a76 100644
--- a/src/array.c
+++ b/src/array.c
@@ -24,7 +24,7 @@
 #include "bignum.h"
 #include "cyclic.h"
 
-RCSID("$Id: array.c,v 1.128 2002/05/31 22:41:19 nilsson Exp $");
+RCSID("$Id: array.c,v 1.129 2002/08/15 14:49:18 marcus Exp $");
 
 PMOD_EXPORT struct array empty_array=
 {
@@ -126,9 +126,9 @@ PMOD_EXPORT void really_free_array(struct array *v)
 {
 #ifdef PIKE_DEBUG
   if(v == & empty_array || v == &weak_empty_array || v == &weak_shrink_empty_array)
-    fatal("Tried to free some *_empty_array.\n");
+    Pike_fatal("Tried to free some *_empty_array.\n");
   if (v->refs)
-    fatal("Freeing array with %d refs.\n", v->refs);
+    Pike_fatal("Freeing array with %d refs.\n", v->refs);
 #endif
 
 #ifdef PIKE_DEBUG
@@ -162,7 +162,7 @@ PMOD_EXPORT struct array *array_set_flags(struct array *a, int flags)
       case ARRAY_WEAK_FLAG|ARRAY_WEAK_SHRINK:
 	add_ref(a = &weak_shrink_empty_array); break;
       default:
-	fatal("Invalid flags %x\n", flags);
+	Pike_fatal("Invalid flags %x\n", flags);
     }
   }
   return a;
@@ -176,7 +176,7 @@ PMOD_EXPORT void array_index(struct svalue *s,struct array *v,INT32 index)
 {
 #ifdef PIKE_DEBUG
   if(index<0 || index>=v->size)
-    fatal("Illegal index in low level index routine.\n");
+    Pike_fatal("Illegal index in low level index routine.\n");
 #endif
 
   add_ref(v);
@@ -235,7 +235,7 @@ PMOD_EXPORT void array_free_index(struct array *v,INT32 index)
 {
 #ifdef PIKE_DEBUG
   if(index<0 || index>=v->size)
-    fatal("Illegal index in low level free index routine.\n");
+    Pike_fatal("Illegal index in low level free index routine.\n");
 #endif
 
   free_svalue(ITEM(v) + index);
@@ -290,7 +290,7 @@ PMOD_EXPORT struct array *array_insert(struct array *v,struct svalue *s,INT32 in
 {
 #ifdef PIKE_DEBUG
   if(index<0 || index>v->size)
-    fatal("Illegal index in low level insert routine.\n");
+    Pike_fatal("Illegal index in low level insert routine.\n");
 #endif
 
   /* Can we fit it into the existing block? */
@@ -378,10 +378,10 @@ PMOD_EXPORT struct array *array_shrink(struct array *v, ptrdiff_t size)
 
 #ifdef PIKE_DEBUG
   if(v->refs>2) /* Odd, but has to be two */
-    fatal("Array shrink on array with many references.\n");
+    Pike_fatal("Array shrink on array with many references.\n");
 
   if(size > v->size)
-    fatal("Illegal argument to array_shrink.\n");
+    Pike_fatal("Illegal argument to array_shrink.\n");
 #endif
 
   if(size*2 < v->malloced_size + 4) /* Should we realloc it? */
@@ -410,7 +410,7 @@ PMOD_EXPORT struct array *array_remove(struct array *v,INT32 index)
 
 #ifdef PIKE_DEBUG
   if(index<0 || index >= v->size)
-    fatal("Illegal argument to array_remove.\n");
+    Pike_fatal("Illegal argument to array_remove.\n");
 #endif
 
   array_free_index(v, index);
@@ -452,7 +452,7 @@ PMOD_EXPORT ptrdiff_t array_search(struct array *v, struct svalue *s,
 
 #ifdef PIKE_DEBUG
   if(start<0)
-    fatal("Start of find_index is less than zero.\n");
+    Pike_fatal("Start of find_index is less than zero.\n");
 #endif
 
   check_destructed(s);
@@ -496,7 +496,7 @@ PMOD_EXPORT struct array *slice_array(struct array *v, ptrdiff_t start,
 
 #ifdef PIKE_DEBUG
   if(start > end || end>v->size || start<0)
-    fatal("Illegal arguments to slice_array()\n");
+    Pike_fatal("Illegal arguments to slice_array()\n");
 
   if(d_flag > 1)  array_check_type_field(v);
 #endif
@@ -543,7 +543,7 @@ PMOD_EXPORT struct array *friendly_slice_array(struct array *v,
 
 #ifdef PIKE_DEBUG
   if(start > end || end>v->size || start<0)
-    fatal("Illegal arguments to slice_array()\n");
+    Pike_fatal("Illegal arguments to slice_array()\n");
 
   if(d_flag > 1)  array_check_type_field(v);
 #endif
@@ -1029,7 +1029,7 @@ PMOD_EXPORT void array_fix_type_field(struct array *v)
   if(t & ~(v->type_field))
   {
     describe(v);
-    fatal("Type field out of order!\n");
+    Pike_fatal("Type field out of order!\n");
   }
 #endif
   v->type_field = t;
@@ -1050,7 +1050,7 @@ void array_check_type_field(struct array *v)
   for(e=0; e<v->size; e++)
   {
     if(ITEM(v)[e].type > MAX_TYPE)
-      fatal("Type is out of range.\n");
+      Pike_fatal("Type is out of range.\n");
       
     t |= 1 << ITEM(v)[e].type;
   }
@@ -1058,7 +1058,7 @@ void array_check_type_field(struct array *v)
   if(t & ~(v->type_field))
   {
     describe(v);
-    fatal("Type field out of order!\n");
+    Pike_fatal("Type field out of order!\n");
   }
 }
 #endif
@@ -1815,7 +1815,7 @@ PMOD_EXPORT struct array *explode(struct pike_string *str,
       case 1: f=(explode_searchfunc)mojt.vtab->func1; break;
       case 2: f=(explode_searchfunc)mojt.vtab->func2; break;
 #ifdef PIKE_DEBUG
-      default: fatal("Illegal shift.\n");
+      default: Pike_fatal("Illegal shift.\n");
 #endif
     }
 
@@ -2011,33 +2011,33 @@ PMOD_EXPORT void check_array(struct array *a)
   INT32 e;
 
   if(a->next->prev != a)
-    fatal("Array check: a->next->prev != a\n");
+    Pike_fatal("Array check: a->next->prev != a\n");
 
   if(a->size > a->malloced_size)
-    fatal("Array is larger than malloced block!\n");
+    Pike_fatal("Array is larger than malloced block!\n");
 
   if(a->size < 0)
-    fatal("Array size is negative!\n");
+    Pike_fatal("Array size is negative!\n");
 
   if(a->malloced_size < 0)
-    fatal("Array malloced size is negative!\n");
+    Pike_fatal("Array malloced size is negative!\n");
 
   if(a->item < a->real_item)
   {
 #ifdef DEBUG_MALLOC
     describe(a);
 #endif
-    fatal("Array item pointer is too small!\n");
+    Pike_fatal("Array item pointer is too small!\n");
   }
 
   if(a->refs <=0 )
-    fatal("Array has zero refs.\n");
+    Pike_fatal("Array has zero refs.\n");
 
 
   for(e=0;e<a->size;e++)
   {
     if(! ( (1 << ITEM(a)[e].type) & (a->type_field) ) && ITEM(a)[e].type<16)
-      fatal("Type field lies.\n");
+      Pike_fatal("Type field lies.\n");
     
     check_svalue(ITEM(a)+e);
   }
@@ -2054,7 +2054,7 @@ void check_all_arrays(void)
 
     a=a->next;
     if(!a)
-      fatal("Null pointer in array list.\n");
+      Pike_fatal("Null pointer in array list.\n");
   } while (a != & empty_array);
 }
 #endif /* PIKE_DEBUG */
@@ -2078,7 +2078,7 @@ void gc_mark_array_as_referenced(struct array *a)
   if(gc_mark(a)) {
 #ifdef PIKE_DEBUG
     if (a == &empty_array || a == &weak_empty_array || a == &weak_shrink_empty_array)
-      fatal("Trying to gc mark some *_empty_array.\n");
+      Pike_fatal("Trying to gc mark some *_empty_array.\n");
 #endif
 
     if (a == gc_mark_array_pos)
@@ -2100,7 +2100,7 @@ void gc_mark_array_as_referenced(struct array *a)
 	  int d=0;
 #ifdef PIKE_DEBUG
 	  if (a->refs != 1)
-	    fatal("Got %d refs to weak shrink array "
+	    Pike_fatal("Got %d refs to weak shrink array "
 		  "which we'd like to change the size on.\n", a->refs);
 #endif
 	  t = 0;
@@ -2145,7 +2145,7 @@ void real_gc_cycle_check_array(struct array *a, int weak)
   GC_CYCLE_ENTER(a, weak) {
 #ifdef PIKE_DEBUG
     if (a == &empty_array || a == &weak_empty_array || a == &weak_shrink_empty_array)
-      fatal("Trying to gc cycle check some *_empty_array.\n");
+      Pike_fatal("Trying to gc cycle check some *_empty_array.\n");
 #endif
 
     if (a->type_field & BIT_COMPLEX)
@@ -2180,7 +2180,7 @@ unsigned gc_touch_all_arrays(void)
     debug_gc_touch(a);
     n++;
     if (!a->next || a->next->prev != a)
-      fatal("Error in array link list.\n");
+      Pike_fatal("Error in array link list.\n");
     a=a->next;
   } while (a != &empty_array);
   return n;
@@ -2211,7 +2211,7 @@ void gc_mark_all_arrays(void)
   while (gc_mark_array_pos != &empty_array) {
     struct array *a = gc_mark_array_pos;
 #ifdef PIKE_DEBUG
-    if (!a) fatal("Null pointer in array list.\n");
+    if (!a) Pike_fatal("Null pointer in array list.\n");
 #endif
     gc_mark_array_pos = a->next;
     if(gc_is_referenced(a))
@@ -2247,7 +2247,7 @@ void gc_free_all_unreferenced_arrays(void)
   {
 #ifdef PIKE_DEBUG
     if (!a)
-      fatal("Null pointer in array list.\n");
+      Pike_fatal("Null pointer in array list.\n");
 #endif
     if(gc_do_free(a))
     {
@@ -2428,7 +2428,7 @@ PMOD_EXPORT struct array *implode_array(struct array *a, struct array *b)
   }
 #ifdef PIKE_DEBUG
   if(size != ret->size)
-    fatal("Implode_array failed miserably (%d != %d)\n", size, ret->size);
+    Pike_fatal("Implode_array failed miserably (%d != %d)\n", size, ret->size);
 #endif
   return ret;
 }
diff --git a/src/array.h b/src/array.h
index cd750c4c758de57084187754f18bdd853ace2eed..70b12c934ffe31cafbdd46712d35742e9a092a13 100644
--- a/src/array.h
+++ b/src/array.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: array.h,v 1.40 2002/05/31 22:41:22 nilsson Exp $
+ * $Id: array.h,v 1.41 2002/08/15 14:49:19 marcus Exp $
  */
 #ifndef ARRAY_H
 #define ARRAY_H
@@ -236,7 +236,7 @@ PMOD_EXPORT struct array *implode_array(struct array *a, struct array *b);
   struct array *v_=(A);						\
   DO_IF_DEBUG(							\
     if(ind_<0 || ind_>=v_->size)				\
-    fatal("Illegal index in low level index routine.\n");	\
+    Pike_fatal("Illegal index in low level index routine.\n");	\
     )								\
 								\
   assign_svalue_no_free((S), ITEM(v_) + ind_);			\
@@ -254,7 +254,7 @@ PMOD_EXPORT struct array *implode_array(struct array *a, struct array *b);
 									 \
   DO_IF_DEBUG(								 \
   if(index_<0 || index_>v_->size)					 \
-    fatal("Illegal index in low level array set routine.\n");		 \
+    Pike_fatal("Illegal index in low level array set routine.\n");		 \
     )									 \
 									 \
   check_destructed(s_);							 \
diff --git a/src/backend.cmod b/src/backend.cmod
index 6f557a39399303ccc17ed976bb60291bf440e362..12353fff4ea8d18057ca72221cafa6239dc93a2a 100644
--- a/src/backend.cmod
+++ b/src/backend.cmod
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: backend.cmod,v 1.26 2002/05/31 22:41:23 nilsson Exp $");
+RCSID("$Id: backend.cmod,v 1.27 2002/08/15 14:49:19 marcus Exp $");
 #include "fdlib.h"
 #include "backend.h"
 #include <errno.h>
@@ -190,7 +190,7 @@ struct Backend_struct *get_backend_for_fd(int fd)
 void set_backend_for_fd(int fd, struct Backend_struct *b)
 {
 #ifdef PIKE_DEBUG
-  if(fd<0) fatal("set_backend_for(%d)\n",fd);
+  if(fd<0) Pike_fatal("set_backend_for(%d)\n",fd);
 #endif
   if(fd >= fd_map_size)
   {
@@ -199,7 +199,7 @@ void set_backend_for_fd(int fd, struct Backend_struct *b)
     while(fd >= fd_map_size) fd_map_size*=2;
     fd_map=(struct Backend_struct **)realloc(fd_map, sizeof(struct Backend_struct *) * fd_map_size);
     if(!fd_map)
-      fatal("Out of memory in backend:set_backend_for_fd.\n"
+      Pike_fatal("Out of memory in backend:set_backend_for_fd.\n"
 	"Tried to allocate %d bytes.\n",sizeof(struct Backend_struct *) * fd_map_size);
     
     MEMSET(fd_map+old,0,sizeof(struct Backend_struct *) * (fd_map_size-old));
@@ -216,7 +216,7 @@ struct Backend_struct *really_get_backend_for_fd(int fd)
   set_backend_for_fd(fd, default_backend);
 #ifdef PIKE_DEBUG
   if(!default_backend)
-    fatal("No backend!\n");
+    Pike_fatal("No backend!\n");
 #endif
   return default_backend;
 }
@@ -273,7 +273,7 @@ static void MY_FD_SET(struct selectors *me,
     me->poll_fd_size += me->num_in_poll;	/* Usually a doubling */
     if (!(me->poll_fds = realloc(me->poll_fds, sizeof(struct pollfd)*me->poll_fd_size)))
     {
-      fatal("Out of memory in backend::MY_FD_SET()\n"
+      Pike_fatal("Out of memory in backend::MY_FD_SET()\n"
 	    "Tried to allocate %d pollfds\n", me->poll_fd_size);
     }
   }
@@ -325,7 +325,7 @@ static void copy_selectors(struct active_selectors *to,
 		  from->poll_fd_size));
     to->poll_fd_size=from->poll_fd_size;
     if (!(to->poll_fds = realloc(to->poll_fds, sizeof(struct pollfd)*to->poll_fd_size))) {
-      fatal("Out of memory in backend::copy_poll_set()\n"
+      Pike_fatal("Out of memory in backend::copy_poll_set()\n"
 	    "Tried to allocate %d pollfds\n", to->poll_fd_size);
     }
   }
@@ -477,7 +477,7 @@ PIKECLASS Backend
 
 #ifdef PIKE_DEBUG
 #define PROTECT_CALL_OUTS() \
-   if(me->inside_call_out) fatal("Recursive call in call_out module.\n"); \
+   if(me->inside_call_out) Pike_fatal("Recursive call in call_out module.\n"); \
    me->inside_call_out=1
  
 #define UNPROTECT_CALL_OUTS() \
@@ -507,7 +507,7 @@ PIKECLASS Backend
       while(wanted_size >= me->fds_size) me->fds_size*=2;
       me->fds = realloc( me->fds, sizeof(struct fd_datum) * me->fds_size );
       if( !me->fds )
-	fatal("Out of memory in backend::grow_fds()\n"
+	Pike_fatal("Out of memory in backend::grow_fds()\n"
 	      "Tried to allocate %d fd_datum structs\n", me->fds_size);
       MEMSET(me->fds+old_size,
 	     0,
@@ -558,7 +558,7 @@ PIKECLASS Backend
       was_set = FDS_ISSET(fd, read.callback);
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       me->fds[fd].read.callback=cb;
       me->fds[fd].read.data=data;
@@ -597,7 +597,7 @@ PIKECLASS Backend
       was_set = FDS_ISSET(fd, write.callback);
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       
       me->fds[fd].write.callback=cb;
@@ -639,7 +639,7 @@ PIKECLASS Backend
       was_set = FDS_ISSET(fd, read_oob.callback);
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       me->fds[fd].read_oob.callback=cb;
       me->fds[fd].read_oob.data=data;
@@ -679,7 +679,7 @@ PIKECLASS Backend
       was_set = FDS_ISSET(fd, write_oob.callback);
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       
       me->fds[fd].write_oob.callback=cb;
@@ -708,7 +708,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_read_callback(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -721,7 +721,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_write_callback(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -735,7 +735,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_read_oob_callback(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -748,7 +748,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_write_oob_callback(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -762,7 +762,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_read_callback_data(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -776,7 +776,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_write_callback_data(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -791,7 +791,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_read_oob_callback_data(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -805,7 +805,7 @@ PIKECLASS Backend
     {
 #ifdef PIKE_DEBUG
       if(fd<0)
-	fatal("File descriptor out of range.\n %d",fd);
+	Pike_fatal("File descriptor out of range.\n %d",fd);
 #endif
       IF_PD(fprintf(stderr, "BACKEND: query_write_oob_callback_data(%d)\n", fd));
       if(me->fds_size <= fd) return 0;
@@ -860,10 +860,10 @@ PIKECLASS Backend
 	    switch(errno)
 	    {
 	      case EBADF:
-		fatal("Backend filedescriptor %d is bad.\n",e);
+		Pike_fatal("Backend filedescriptor %d is bad.\n",e);
 		break;
 	      case ENOENT:
-		fatal("Backend filedescriptor %d is not.\n",e);
+		Pike_fatal("Backend filedescriptor %d is not.\n",e);
 		break;
 	    }
 	  }
@@ -883,11 +883,11 @@ PIKECLASS Backend
 	  switch(errno)
 	  {
 	    case EBADF:
-	      fatal("Backend filedescriptor %ld is bad.\n", 
+	      Pike_fatal("Backend filedescriptor %ld is bad.\n", 
 		    (long)me->set.poll_fds[e].fd);
 	      break;
 	    case ENOENT:
-	      fatal("Backend filedescriptor %ld is not.\n",
+	      Pike_fatal("Backend filedescriptor %ld is not.\n",
 		    (long)me->set.poll_fds[e].fd);
 	      break;
 	  }
@@ -1029,7 +1029,7 @@ PIKECLASS Backend
 		fds.revents=0;
 		ret=poll(&fds, 1,1 );
 		if(fds.revents & POLLNVAL)
-		  fatal("Bad filedescriptor %d to poll().\n", fd);
+		  Pike_fatal("Bad filedescriptor %d to poll().\n", fd);
 		break;
 	      }
 	    }
@@ -1147,12 +1147,12 @@ PIKECLASS Backend
 	{
 #ifdef __NT__
 	  default:
-	    fatal("Error in backend %d\n",errno);
+	    Pike_fatal("Error in backend %d\n",errno);
 	    break;
 #endif
 	    
 	  case EINVAL:
-	    fatal("Invalid timeout to select().\n");
+	    Pike_fatal("Invalid timeout to select().\n");
 	    break;
 	    
 #ifdef WSAEINTR
@@ -1241,7 +1241,7 @@ PIKECLASS Backend
 #ifdef DEBUG_MALLOC
 			  debug_malloc_dump_fd(i);
 #endif
-			  fatal("Filedescriptor %d (%s) caused fatal error %d in backend.\n",i,fd_info(i),errno);
+			  Pike_fatal("Filedescriptor %d (%s) caused fatal error %d in backend.\n",i,fd_info(i),errno);
 			  
 			case EINTR:
 			  break;
@@ -1255,7 +1255,7 @@ PIKECLASS Backend
 	      write_to_stderr("Bad filedescriptor to select().\n"
 			      "fd closed in another thread?\n", 62);
 #else /* !_REENTRANT */
-	      fatal("Bad filedescriptor to select().\n");
+	      Pike_fatal("Bad filedescriptor to select().\n");
 #endif /* _REENTRANT */
 	    }
 #endif
@@ -1313,7 +1313,7 @@ PIKECLASS Backend
      if(!me->call_buffer) return;
 
      if(me->num_pending_calls<0 || me->num_pending_calls>me->call_buffer_size)
-       fatal("Error in call out tables.\n");
+       Pike_fatal("Error in call out tables.\n");
 
      if(d_flag<2) return;
 
@@ -1322,35 +1322,35 @@ PIKECLASS Backend
        if(e)
        {
 	 if(CMP(e, PARENT(e)))
-	   fatal("Error in call out heap. (@ %d)\n",e);
+	   Pike_fatal("Error in call out heap. (@ %d)\n",e);
        }
 
        if(!(v=CALL(e)->args))
-	 fatal("No arguments to call\n");
+	 Pike_fatal("No arguments to call\n");
 
        if(v->refs < 1)
-	 fatal("Array should have at least one reference.\n");
+	 Pike_fatal("Array should have at least one reference.\n");
        
        if(v->malloced_size<v->size)
-	 fatal("Impossible array.\n");
+	 Pike_fatal("Impossible array.\n");
        
        if(!v->size)
-	 fatal("Call out array of zero size!\n");
+	 Pike_fatal("Call out array of zero size!\n");
        
        if(CALL(e)->prev_arr[0] != CALL(e))
-	 fatal("call_out[%d]->prev_arr[0] is wrong!\n",e);
+	 Pike_fatal("call_out[%d]->prev_arr[0] is wrong!\n",e);
        
        if(CALL(e)->prev_fun[0] != CALL(e))
-	 fatal("call_out[%d]->prev_fun[0] is wrong!\n",e);
+	 Pike_fatal("call_out[%d]->prev_fun[0] is wrong!\n",e);
        
        if(CALL(e)->pos != e)
-	 fatal("Call_out->pos is not correct!\n");
+	 Pike_fatal("Call_out->pos is not correct!\n");
 
        if(d_flag>4)
        {
 	 for(d=e+1;d<me->num_pending_calls;d++)
 	   if(CALL(e)->args == CALL(d)->args)
-	     fatal("Duplicate call out in heap.\n");
+	     Pike_fatal("Duplicate call out in heap.\n");
        }
      }
      
@@ -1363,19 +1363,19 @@ PIKECLASS Backend
        for(prev=& me->call_hash[e].arr;(c=*prev);prev=& c->next_arr)
        {
 	 if(c->prev_arr != prev)
-	   fatal("c->prev_arr is wrong %p.\n",c);
+	   Pike_fatal("c->prev_arr is wrong %p.\n",c);
 
 	 if(c->pos<0)
-	   fatal("Free call_out in call_out hash table %p.\n",c);
+	   Pike_fatal("Free call_out in call_out hash table %p.\n",c);
        }
 
        for(prev=& me->call_hash[e].fun;(c=*prev);prev=& c->next_fun)
        {
 	 if(c->prev_fun != prev)
-	   fatal("c->prev_fun is wrong %p.\n",c);
+	   Pike_fatal("c->prev_fun is wrong %p.\n",c);
 	 
 	 if(c->pos<0)
-	   fatal("Free call_out in call_out hash table %p.\n",c);
+	   Pike_fatal("Free call_out in call_out hash table %p.\n",c);
        }
      }
    }
@@ -1408,7 +1408,7 @@ PIKECLASS Backend
      int from;
 #ifdef PIKE_DEBUG
      if(pos <0 || pos>=me->num_pending_calls)
-       fatal("Bad argument to adjust_up(%d)\n",pos);
+       Pike_fatal("Bad argument to adjust_up(%d)\n",pos);
 #endif
      if(!pos) return 0;
      
@@ -1535,7 +1535,7 @@ PIKECLASS Backend
        }
        
        default:
-	 fatal("Bad timeout to new_call_out!\n");
+	 Pike_fatal("Bad timeout to new_call_out!\n");
      }
      
 #ifdef _REENTRANT
@@ -1698,7 +1698,7 @@ PIKECLASS Backend
 	   {
 #ifdef PIKE_DEBUG
 	     if(CALL(c->pos) != c)
-	       fatal("Call_out->pos not correct!\n");
+	       Pike_fatal("Call_out->pos not correct!\n");
 #endif
 	     return c->pos;
 	   }
@@ -1713,7 +1713,7 @@ PIKECLASS Backend
 	 {
 #ifdef PIKE_DEBUG
 	   if(CALL(c->pos) != c)
-	     fatal("Call_out->pos not correct!\n");
+	     Pike_fatal("Call_out->pos not correct!\n");
 #endif
 	   return c->pos;
 	 }
diff --git a/src/bignum.c b/src/bignum.c
index d20095844eef479ec68dce3a24551e1b9fe10815..feca2a485f14364bfe0ea7d8a7654a23c866e339 100644
--- a/src/bignum.c
+++ b/src/bignum.c
@@ -25,7 +25,7 @@ static void resolve_auto_bignum_program(void)
   if(auto_bignum_program.type == T_INT)
   {
     if(gmp_library_resolving)
-      fatal("Recursive GMP resolving!\n");
+      Pike_fatal("Recursive GMP resolving!\n");
 
     gmp_library_resolving=1;
     push_text("Gmp.bignum");
diff --git a/src/block_alloc.h b/src/block_alloc.h
index 40b147c08912f20c3b5d32939f08f59812a6e135..cf083ed1dd998c1f486ded8241f10d506a916281 100644
--- a/src/block_alloc.h
+++ b/src/block_alloc.h
@@ -1,4 +1,4 @@
-/* $Id: block_alloc.h,v 1.40 2001/11/08 23:34:27 nilsson Exp $ */
+/* $Id: block_alloc.h,v 1.41 2002/08/15 14:49:19 marcus Exp $ */
 #undef PRE_INIT_BLOCK
 #undef INIT_BLOCK
 #undef EXIT_BLOCK
@@ -71,7 +71,7 @@ BA_STATIC BA_INLINE struct DATA *BA_UL(PIKE_CONCAT(alloc_,DATA))(void)	\
     PIKE_CONCAT(alloc_more_,DATA)();					\
   DO_IF_DEBUG(								\
     else if (PIKE_CONCAT3(free_,DATA,s) == (struct DATA *)-1)		\
-      fatal("Block alloc not initialized.\n");				\
+      Pike_fatal("Block alloc not initialized.\n");				\
   )									\
 									\
   tmp=PIKE_CONCAT3(free_,DATA,s);					\
@@ -104,7 +104,7 @@ static void PIKE_CONCAT(check_free_,DATA)(struct DATA *d)               \
     if( (char *)d >= (char *)(tmp->x+BSIZE)) continue;                  \
     return;                                                             \
   }                                                                     \
-  fatal("really_free_%s called on non-block_alloc region (%p).\n",      \
+  Pike_fatal("really_free_%s called on non-block_alloc region (%p).\n",      \
          #DATA, d);                                                     \
 }                                                                       \
 )									\
@@ -295,7 +295,7 @@ int PIKE_CONCAT(remove_,DATA)(void *ptr)				     \
   {									     \
     PIKE_CONCAT(num_,DATA)--;						     \
     DO_IF_DEBUG( if(PIKE_CONCAT(DATA,_hash_table)[hval]!=p)                  \
-                    fatal("GAOssdf\n"); );                       	     \
+                    Pike_fatal("GAOssdf\n"); );                       	     \
     PIKE_CONCAT(DATA,_hash_table)[hval]=p->BLOCK_ALLOC_NEXT;		     \
     BA_UL(PIKE_CONCAT(really_free_,DATA))(p);				     \
     DO_IF_RUN_UNLOCKED(mt_unlock(&PIKE_CONCAT(DATA,_mutex)));                \
@@ -351,7 +351,7 @@ struct DATA *PIKE_CONCAT3(make_,DATA,_unlocked)(void *ptr, size_t hval)   \
   struct DATA *p;							     \
 									     \
   DO_IF_DEBUG( if(!PIKE_CONCAT(DATA,_hash_table))			     \
-    fatal("Hash table error!\n"); )					     \
+    Pike_fatal("Hash table error!\n"); )					     \
   PIKE_CONCAT(num_,DATA)++;						     \
 									     \
   p=BA_UL(PIKE_CONCAT(alloc_,DATA))();					     \
@@ -410,7 +410,7 @@ struct DATA *PIKE_CONCAT3(make_,DATA,_unlocked)(void *ptr, size_t hval)   \
   struct DATA *p;							     \
 									     \
   DO_IF_DEBUG( if(!PIKE_CONCAT(DATA,_hash_table))			     \
-    fatal("Hash table error!\n"); )					     \
+    Pike_fatal("Hash table error!\n"); )					     \
   PIKE_CONCAT(num_,DATA)++;						     \
 									     \
   if(( PIKE_CONCAT(num_,DATA)>>BLOCK_ALLOC_HSIZE_SHIFT ) >=		     \
diff --git a/src/builtin.cmod b/src/builtin.cmod
index 4d09f946453adacac0720f084200f86b6a865244..a3c085c506ae5233caf166bc16ffb08a77b895b7 100644
--- a/src/builtin.cmod
+++ b/src/builtin.cmod
@@ -1,5 +1,5 @@
 /* -*- c -*-
- * $Id: builtin.cmod,v 1.89 2002/05/24 14:12:24 grubba Exp $
+ * $Id: builtin.cmod,v 1.90 2002/08/15 14:49:19 marcus Exp $
  */
 
 #include "global.h"
@@ -2017,7 +2017,7 @@ PIKECLASS single_string_replace
       case 1: f = (replace_searchfunc)THIS->mojt.vtab->func1; break;
       case 2: f = (replace_searchfunc)THIS->mojt.vtab->func2; break;
 #ifdef PIKE_DEBUG
-      default: fatal("Illegal shift.\n");
+      default: Pike_fatal("Illegal shift.\n");
 #endif
       }
 
@@ -2051,7 +2051,7 @@ PIKECLASS single_string_replace
       {
 #ifdef PIKE_DEBUG
 	if(tmp + (del->len << str->size_shift) > end)
-	  fatal("generic_memory_search found a match beyond end of string!\n");
+	  Pike_fatal("generic_memory_search found a match beyond end of string!\n");
 #endif
 	generic_memcpy(r,MKPCHARP(s,str->size_shift),(tmp-s)>>str->size_shift);
 	INC_PCHARP(r,(tmp-s)>>str->size_shift);
@@ -2156,7 +2156,7 @@ static void low_automap(int d,
 
 #ifdef PIKE_DEBUG
    if(size == 0x7fffffff)
-    fatal("No automap markers found in low_automap\n");
+    Pike_fatal("No automap markers found in low_automap\n");
 #endif
 
   push_array(ret=allocate_array(size));
@@ -2171,7 +2171,7 @@ static void low_automap(int d,
       {
 #ifdef PIKE_DEBUG
 	if(x >= tmpargs[e].u.array->size)
-	  fatal("low_automap failed to determine size!\n");
+	  Pike_fatal("low_automap failed to determine size!\n");
 #endif
 	push_svalue(ITEM(tmpargs[e].u.array)+x);
       }else{
diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index 5d852b42921b6dc4f43c9f270fb49d644f4afe37..3113e2b51233b726ec347e08825440e970bc0cf3 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: builtin_functions.c,v 1.434 2002/08/06 14:18:57 grubba Exp $");
+RCSID("$Id: builtin_functions.c,v 1.435 2002/08/15 14:49:19 marcus Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "pike_macros.h"
@@ -105,7 +105,7 @@ PMOD_EXPORT void debug_f_aggregate(INT32 args)
 {
   struct array *a;
 #ifdef PIKE_DEBUG
-  if(args < 0) fatal("Negative args to f_aggregate() (%d)\n",args);
+  if(args < 0) Pike_fatal("Negative args to f_aggregate() (%d)\n",args);
 #endif
 
   a=aggregate_array(args);
@@ -317,7 +317,7 @@ static struct case_info *find_ci_shift0(INT32 c)
       case CIM_UPPERDELTA: C = c + ci->data; break; \
       case CIM_CASEBIT: C = c | ci->data; break; \
       case CIM_CASEBITOFF: C = ((c - ci->data) | ci->data) + ci->data; break; \
-      default: fatal("lower_case(): Unknown case_info mode: %d\n", ci->mode); \
+      default: Pike_fatal("lower_case(): Unknown case_info mode: %d\n", ci->mode); \
     } \
    } \
   } while(0)
@@ -331,7 +331,7 @@ static struct case_info *find_ci_shift0(INT32 c)
       case CIM_UPPERDELTA: C = c + ci->data; break; \
       case CIM_CASEBIT: C = c | ci->data; break; \
       case CIM_CASEBITOFF: C = ((c - ci->data) | ci->data) + ci->data; break; \
-      default: fatal("lower_case(): Unknown case_info mode: %d\n", ci->mode); \
+      default: Pike_fatal("lower_case(): Unknown case_info mode: %d\n", ci->mode); \
     } \
    } \
   } while(0)
@@ -345,7 +345,7 @@ static struct case_info *find_ci_shift0(INT32 c)
       case CIM_LOWERDELTA: C = c - ci->data; break; \
       case CIM_CASEBIT: C = c & ~ci->data; break; \
       case CIM_CASEBITOFF: C = ((c - ci->data)& ~ci->data) + ci->data; break; \
-      default: fatal("upper_case(): Unknown case_info mode: %d\n", ci->mode); \
+      default: Pike_fatal("upper_case(): Unknown case_info mode: %d\n", ci->mode); \
     } \
    } \
   } while(0)
@@ -359,7 +359,7 @@ static struct case_info *find_ci_shift0(INT32 c)
       case CIM_LOWERDELTA: C = c - ci->data; break; \
       case CIM_CASEBIT: C = c & ~ci->data; break; \
       case CIM_CASEBITOFF: C = ((c - ci->data)& ~ci->data) + ci->data; break; \
-      default: fatal("lower_case(): Unknown case_info mode: %d\n", ci->mode); \
+      default: Pike_fatal("lower_case(): Unknown case_info mode: %d\n", ci->mode); \
     } \
    } \
   } while(0)
@@ -407,7 +407,7 @@ PMOD_EXPORT void f_lower_case(INT32 args)
       DO_LOWER_CASE(str[i]);
     }
   } else {
-    fatal("lower_case(): Bad string shift:%d\n", orig->size_shift);
+    Pike_fatal("lower_case(): Bad string shift:%d\n", orig->size_shift);
   }
 
   pop_n_elems(args);
@@ -461,7 +461,7 @@ PMOD_EXPORT void f_upper_case(INT32 args)
       DO_UPPER_CASE(str[i]);
     }
   } else {
-    fatal("lower_case(): Bad string shift:%d\n", orig->size_shift);
+    Pike_fatal("lower_case(): Bad string shift:%d\n", orig->size_shift);
   }
 
   pop_n_elems(args);
@@ -643,7 +643,7 @@ PMOD_EXPORT void f_search(INT32 args)
 	}
 	break;
       default:
-	fatal("search(): Unsupported string shift: %d!\n",
+	Pike_fatal("search(): Unsupported string shift: %d!\n",
 	      haystack->size_shift);
 	break;
       }
@@ -1086,7 +1086,7 @@ static int generate_zero_type(node *n)
 {
   if(count_args(CDR(n)) != 1) return 0;
   if(do_docode(CDR(n),DO_NOT_COPY) != 1)
-    fatal("Count args was wrong in generate_zero_type().\n");
+    Pike_fatal("Count args was wrong in generate_zero_type().\n");
   emit0(F_ZERO_TYPE);
   return 1;
 }
@@ -1130,7 +1130,7 @@ PMOD_EXPORT void f_string_to_unicode(INT32 args)
       if (d_flag) {
 	for(i = len; i--;) {
 	  if (out->str[i]) {
-	    fatal("MEMSET didn't clear byte %ld of %ld\n",
+	    Pike_fatal("MEMSET didn't clear byte %ld of %ld\n",
 		  PTRDIFF_T_TO_LONG(i+1),
 		  PTRDIFF_T_TO_LONG(len));
 	  }
@@ -1218,7 +1218,7 @@ PMOD_EXPORT void f_string_to_unicode(INT32 args)
       }
 #ifdef PIKE_DEBUG
       if (j) {
-	fatal("string_to_unicode(): Indexing error: len:%ld, j:%ld.\n",
+	Pike_fatal("string_to_unicode(): Indexing error: len:%ld, j:%ld.\n",
 	      PTRDIFF_T_TO_LONG(len), PTRDIFF_T_TO_LONG(j));
       }
 #endif /* PIKE_DEBUG */
@@ -1516,7 +1516,7 @@ void f_string_to_utf8(INT32 args)
   }
 #ifdef PIKE_DEBUG
   if (len != j) {
-    fatal("string_to_utf8(): Calculated and actual lengths differ: "
+    Pike_fatal("string_to_utf8(): Calculated and actual lengths differ: "
 	  "%ld != %ld\n",
 	  PTRDIFF_T_TO_LONG(len), PTRDIFF_T_TO_LONG(j));
   }
@@ -1673,7 +1673,7 @@ PMOD_EXPORT void f_utf8_to_string(INT32 args)
   }
 #ifdef PIKE_DEBUG
   if (j != len) {
-    fatal("utf8_to_string(): Calculated and actual lengths differ: %d != %d\n",
+    Pike_fatal("utf8_to_string(): Calculated and actual lengths differ: %d != %d\n",
 	  len, j);
   }
 #endif /* PIKE_DEBUG */
@@ -1905,7 +1905,7 @@ static node *optimize_this_object(node *n)
       int level;
 #ifdef PIKE_DEBUG
       if (CDR (n)->u.sval.type != T_INT || CDR (n)->u.sval.u.integer < 0)
-	fatal ("The type check for this_object() failed.\n");
+	Pike_fatal ("The type check for this_object() failed.\n");
 #endif
       level = CDR (n)->u.sval.u.integer;
       if (level > compilation_depth) {
@@ -1945,12 +1945,12 @@ static int generate_this_object(node *n)
     else {
 #ifdef PIKE_DEBUG
       if (CDR (n)->u.sval.type != T_INT || CDR (n)->u.sval.u.integer < 0)
-	fatal ("The type check for this_object() failed.\n");
+	Pike_fatal ("The type check for this_object() failed.\n");
 #endif
       level = CDR (n)->u.sval.u.integer;
 #ifdef PIKE_DEBUG
       if (level > compilation_depth)
-	fatal ("this_object level too high. "
+	Pike_fatal ("this_object level too high. "
 	       "Expected this to be caught by optimize_this_object.\n");
 #endif
     }
@@ -4329,7 +4329,7 @@ static void f_parse_format(INT32 args)
   }
 #ifdef PIKE_DEBUG
   if (Pike_sp[-1].type != T_ARRAY) {
-    fatal("parse_format(): Unexpected result from low_parse_format()\n");
+    Pike_fatal("parse_format(): Unexpected result from low_parse_format()\n");
   }
 #endif /* PIKE_DEBUG */
   a = (--Pike_sp)->u.array;
@@ -5011,9 +5011,9 @@ static struct array *diff_longest_sequence(struct array *cmptbl, int blen)
 #endif /* DIFF_DEBUG */
 #ifdef PIKE_DEBUG
 	 if (x >= blen) {
-	   fatal("diff_longest_sequence(): x:%d >= blen:%d\n", x, blen);
+	   Pike_fatal("diff_longest_sequence(): x:%d >= blen:%d\n", x, blen);
 	 } else if (x < 0) {
-	   fatal("diff_longest_sequence(): x:%d < 0\n", x);
+	   Pike_fatal("diff_longest_sequence(): x:%d < 0\n", x);
 	 }
 #endif /* PIKE_DEBUG */
 	 if (!marks[x]) {
@@ -5054,9 +5054,9 @@ static struct array *diff_longest_sequence(struct array *cmptbl, int blen)
 #endif /* DIFF_DEBUG */
 #ifdef PIKE_DEBUG
 	   if (x >= blen) {
-	     fatal("diff_longest_sequence(): x:%d >= blen:%d\n", x, blen);
+	     Pike_fatal("diff_longest_sequence(): x:%d >= blen:%d\n", x, blen);
 	   } else if (x < 0) {
-	     fatal("diff_longest_sequence(): x:%d < 0\n", x);
+	     Pike_fatal("diff_longest_sequence(): x:%d < 0\n", x);
 	   }
 #endif /* PIKE_DEBUG */
 
@@ -5321,7 +5321,7 @@ static struct array *diff_dyn_longest_sequence(struct array *cmptbl, int blen)
   while(dml) {
 #ifdef PIKE_DEBUG
     if (i >= sz) {
-      fatal("Consistency error in diff_dyn_longest_sequence()\n");
+      Pike_fatal("Consistency error in diff_dyn_longest_sequence()\n");
     }
 #endif /* PIKE_DEBUG */
 #ifdef DIFF_DEBUG
@@ -5335,7 +5335,7 @@ static struct array *diff_dyn_longest_sequence(struct array *cmptbl, int blen)
   }
 #ifdef PIKE_DEBUG
   if (i != sz) {
-    fatal("Consistency error in diff_dyn_longest_sequence()\n");
+    Pike_fatal("Consistency error in diff_dyn_longest_sequence()\n");
   }
 #endif /* PIKE_DEBUG */
 
@@ -6165,7 +6165,7 @@ PMOD_EXPORT void f_splice(INT32 args)
   INT32 i,j,k;
 
 #ifdef PIKE_DEBUG
-  if(args < 0) fatal("Negative args to f_splice()\n");
+  if(args < 0) Pike_fatal("Negative args to f_splice()\n");
 #endif
 
   for(i=0;i<args;i++)
@@ -6212,7 +6212,7 @@ void f_everynth(INT32 args)
   struct array *ina;
   INT32 size=0;
 #ifdef PIKE_DEBUG
-  if(args < 0) fatal("Negative args to f_everynth()\n");
+  if(args < 0) Pike_fatal("Negative args to f_everynth()\n");
 #endif
 
   check_all_args("everynth", args,
@@ -6257,7 +6257,7 @@ PMOD_EXPORT void f_transpose(INT32 args)
   INT32 j,i;
   TYPE_FIELD type=0;
 #ifdef PIKE_DEBUG
-  if(args < 0) fatal("Negative args to f_transpose()\n");
+  if(args < 0) Pike_fatal("Negative args to f_transpose()\n");
 #endif
   
   if (args<1)
diff --git a/src/callback.c b/src/callback.c
index c5654ed9a8bb76796471e11404e962d35bfdf565..393a558bf31b65e5de7719912b77d777fa213f16 100644
--- a/src/callback.c
+++ b/src/callback.c
@@ -10,7 +10,7 @@
 #include "pike_error.h"
 #include "block_alloc.h"
 
-RCSID("$Id: callback.c,v 1.25 2002/05/31 22:41:23 nilsson Exp $");
+RCSID("$Id: callback.c,v 1.26 2002/08/15 14:49:20 marcus Exp $");
 
 struct callback_list fork_child_callback;
 
@@ -68,7 +68,7 @@ static void check_callback_chain(struct callback_list *lst)
 	for(tmp=foo->next;tmp && len2<=len;tmp=tmp->next)
 	{
 	  if(tmp==foo)
-	    fatal("Callback list is cyclic!!!\n");
+	    Pike_fatal("Callback list is cyclic!!!\n");
 	}
       }
       len++;
@@ -84,15 +84,15 @@ static void check_callback_chain(struct callback_list *lst)
 	if(tmp->x[e].free_func == (callback_func)remove_callback)
 	{
 	  if(!is_in_free_list(tmp->x+e))
-	    fatal("Lost track of a struct callback!\n");
+	    Pike_fatal("Lost track of a struct callback!\n");
 
 	  if(tmp->x[e].next &&
 	     !is_in_free_list(tmp->x[e].next))
-	    fatal("Free callback has next in Z'ha'dum!\n");
+	    Pike_fatal("Free callback has next in Z'ha'dum!\n");
 
 	}else{
 	  if(is_in_free_list(tmp->x[e].next))
-	    fatal("Non-free callback has next in free list!\n");
+	    Pike_fatal("Non-free callback has next in free list!\n");
 	}
 	
 	if(tmp->x[e].next)
@@ -110,7 +110,7 @@ static void check_callback_chain(struct callback_list *lst)
 	  }
 	  
 	  if(d == CALLBACK_CHUNK)
-	    fatal("Callback next pointer pointing to Z'ha'dum\n");
+	    Pike_fatal("Callback next pointer pointing to Z'ha'dum\n");
 	}
       }
     }
@@ -155,7 +155,7 @@ PMOD_EXPORT void low_call_callback(struct callback_list *lst, void *arg)
 	if(!*ptr)
 	{
 	  /* We totally failed to find where we are in the linked list.. */
-	  fatal("Callback linked list breakdown.\n");
+	  Pike_fatal("Callback linked list breakdown.\n");
 	}
       }
 
diff --git a/src/code/ia32.c b/src/code/ia32.c
index 6c4908849f27d8b1f8db7c458025f66493f44d36..86c4817162281baf94a3771902cb0ebd9a6f5f26 100644
--- a/src/code/ia32.c
+++ b/src/code/ia32.c
@@ -1,5 +1,5 @@
 /*
- * $Id: ia32.c,v 1.20 2002/05/10 22:16:59 mast Exp $
+ * $Id: ia32.c,v 1.21 2002/08/15 14:50:24 marcus Exp $
  *
  * Machine code generator for IA32.
  *
@@ -532,7 +532,7 @@ void ia32_encode_program(struct program *p, struct dynamic_buffer_s *buf)
     INT32 opcode;
 #ifdef PIKE_DEBUG
     if (off < prev) {
-      fatal("Relocations in bad order!\n");
+      Pike_fatal("Relocations in bad order!\n");
     }
 #endif /* PIKE_DEBUG */
     adddata2(p->program + prev, off - prev);
diff --git a/src/code/ppc32.c b/src/code/ppc32.c
index 65514264bee6be4e5bde2faced2967eb6eca65b9..3cae7fa5def6546d6c09040d48f6e7ffe8abe3ed 100644
--- a/src/code/ppc32.c
+++ b/src/code/ppc32.c
@@ -1,5 +1,5 @@
 /*
- * $Id: ppc32.c,v 1.15 2002/05/10 22:16:59 mast Exp $
+ * $Id: ppc32.c,v 1.16 2002/08/15 14:50:24 marcus Exp $
  *
  * Machine code generator for 32 bit PowerPC
  *
@@ -24,7 +24,7 @@
     __asm__("\tmr %0,"PPC_REGNAME(2) : "=r" (toc_));			\
     delta_ = ((char *)func_) - ((char *)toc_);				\
     if(delta_ < -32768 || delta_ > 32767)				\
-      fatal("Function pointer %p out of range for TOC @ %p!\n",		\
+      Pike_fatal("Function pointer %p out of range for TOC @ %p!\n",		\
 	    func_, toc_);						\
     /* lwz r0,delta(r2)	*/						\
     LWZ(0, 2, delta_);							\
@@ -578,14 +578,14 @@ void ppc32_encode_program(struct program *p, struct dynamic_buffer_s *buf)
     INT32 opcode;
 #ifdef PIKE_DEBUG
     if (off < prev) {
-      fatal("Relocations in bad order!\n");
+      Pike_fatal("Relocations in bad order!\n");
     }
 #endif /* PIKE_DEBUG */
     adddata2(p->program + prev, off - prev);
 
 #ifdef PIKE_DEBUG
     if ((p->program[off] & 0xfc000002) != 0x48000000)
-      fatal("Bad relocation: %d, off:%d, opcode: 0x%08x\n",
+      Pike_fatal("Bad relocation: %d, off:%d, opcode: 0x%08x\n",
 	    rel, off, p->program[off]);
 #endif /* PIKE_DEBUG */
     /* Relocate to 0 */
@@ -606,7 +606,7 @@ void ppc32_decode_program(struct program *p)
     PIKE_OPCODE_T *o = prog+p->relocations[rel];
     INT32 disp = *o - (INT32)(void*)o;
     if(disp < -33554432 || disp > 33554431)
-      fatal("Relocation %d out of range!\n", disp);
+      Pike_fatal("Relocation %d out of range!\n", disp);
     *o = 0x48000000 | (disp & 0x03ffffff);
   }
 }
diff --git a/src/code/ppc32.h b/src/code/ppc32.h
index c7d66d385a53572cde61861d4e942423bbc71f25..8fd534f924ea1ae745b703ae8ed933f3c7fb7e00 100644
--- a/src/code/ppc32.h
+++ b/src/code/ppc32.h
@@ -1,5 +1,5 @@
 /*
- * $Id: ppc32.h,v 1.13 2002/05/11 10:47:07 mast Exp $
+ * $Id: ppc32.h,v 1.14 2002/08/15 14:50:24 marcus Exp $
  */
 
 #define PPC_INSTR_B_FORM(OPCD,BO,BI,BD,AA,LK)			\
@@ -181,7 +181,7 @@ INT32 ppc32_read_f_jump(INT32 offset);
       DO_IF_DEBUG(						\
         if ((op_[p_->relocations[rel_]] & 0xfc000002) !=	\
 	    0x48000000) {					\
-          fatal("Bad relocation: %d, off:%d, opcode: 0x%08x\n",	\
+          Pike_fatal("Bad relocation: %d, off:%d, opcode: 0x%08x\n",	\
 		rel_, p_->relocations[rel_],			\
 		op_[p_->relocations[rel_]]);			\
 	}							\
@@ -191,7 +191,7 @@ INT32 ppc32_read_f_jump(INT32 offset);
 	disp_ -= 0x04000000;					\
       disp_ += delta_ << 2;					\
       if(disp_ < -33554432 || disp_ > 33554431)			\
-	fatal("Relocation %d out of range!\n", disp_);		\
+	Pike_fatal("Relocation %d out of range!\n", disp_);		\
       op_[p_->relocations[rel_]] = 0x48000000 |			\
 	(disp_ & 0x03ffffff);					\
     }								\
diff --git a/src/code/sparc.c b/src/code/sparc.c
index d6672e1c24b3421ef602cb46b22d4ea6775dfc0d..f724f3af5530a13cb464b40f44b5c8fd8750e19c 100644
--- a/src/code/sparc.c
+++ b/src/code/sparc.c
@@ -1,5 +1,5 @@
 /*
- * $Id: sparc.c,v 1.10 2002/05/10 14:04:37 mast Exp $
+ * $Id: sparc.c,v 1.11 2002/08/15 14:50:24 marcus Exp $
  *
  * Machine code generator for sparc.
  *
@@ -116,14 +116,14 @@ void sparc_encode_program(struct program *p, struct dynamic_buffer_s *buf)
     INT32 opcode;
 #ifdef PIKE_DEBUG
     if (off < prev) {
-      fatal("Relocations in bad order!\n");
+      Pike_fatal("Relocations in bad order!\n");
     }
 #endif /* PIKE_DEBUG */
     adddata2(p->program + prev, off - prev);
 
 #ifdef PIKE_DEBUG
     if ((p->program[off] & 0xc0000000) != 0x40000000) {
-      fatal("Bad relocation!\n");
+      Pike_fatal("Bad relocation!\n");
     }
 #endif /* PIKE_DEBUG */
     /* Relocate to being relative to NULL */
diff --git a/src/code/sparc.h b/src/code/sparc.h
index 52673ae2a50060d809a200654d2879c4a571c168..19a6d36bcbc44c45bb607a2e90f54a7b5b975aa7 100644
--- a/src/code/sparc.h
+++ b/src/code/sparc.h
@@ -1,5 +1,5 @@
 /*
- * $Id: sparc.h,v 1.12 2002/04/22 21:59:27 marcus Exp $
+ * $Id: sparc.h,v 1.13 2002/08/15 14:50:25 marcus Exp $
  */
 
 #define PIKE_OPCODE_ALIGN	4
@@ -90,7 +90,7 @@
       DO_IF_DEBUG(						\
         if ((op_[p_->relocations[rel_]] & 0xc0000000) !=	\
 	    0x40000000) {					\
-          fatal("Bad relocation: %d, off:%d, opcode: 0x%08x\n",	\
+          Pike_fatal("Bad relocation: %d, off:%d, opcode: 0x%08x\n",	\
 		rel_, p_->relocations[rel_],			\
 		op_[p_->relocations[rel_]]);			\
 	}							\
diff --git a/src/compilation.h b/src/compilation.h
index 5d8c1b89524559b11c6cc2b3466550a497666600..a078dd4c327da9fb2a0ca98838b27b038be1e54d 100644
--- a/src/compilation.h
+++ b/src/compilation.h
@@ -1,5 +1,5 @@
 /*
- * $Id: compilation.h,v 1.27 2002/06/25 14:26:40 grubba Exp $
+ * $Id: compilation.h,v 1.28 2002/08/15 14:49:20 marcus Exp $
  *
  * Compilator state push / pop operator construction file
  *
@@ -89,12 +89,12 @@
 
 #define DMEMBER(X,Y,Z) DO_DEBUG_CODE( \
     if(MEMCMP((char *)&(Pike_compiler->Y), (char *)&(oLd->Y), sizeof(oLd->Y))) \
-      fatal("Variable " #Y " became whacked during compilation.\n"); ) \
+      Pike_fatal("Variable " #Y " became whacked during compilation.\n"); ) \
   IMEMBER(X,Y)
 
 #define STACKMEMBER(X,Y,Z) DO_DEBUG_CODE( \
     if(Pike_compiler->Y < oLd->Y) \
-      fatal("Stack " #Y " shrunk %ld steps compilation, currently: %p.\n", \
+      Pike_fatal("Stack " #Y " shrunk %ld steps compilation, currently: %p.\n", \
             PTRDIFF_T_TO_LONG(oLd->Y - Pike_compiler->Y), Pike_compiler->Y); )
 
 #define SNAME(X,Y) { \
@@ -113,7 +113,7 @@
 
 #ifdef PIKE_DEBUG
 #define STRMEMBER(X,Y) \
-  PCODE(if(Pike_compiler->X) fatal("Variable " #X " not deallocated properly.\n");) \
+  PCODE(if(Pike_compiler->X) Pike_fatal("Variable " #X " not deallocated properly.\n");) \
   ZMEMBER(struct pike_string *,X,Y)
 #else
 #define STRMEMBER(X,Y) \
diff --git a/src/constants.c b/src/constants.c
index 57357743d455fa322b025c4c6e6c69b59ee2143a..c81c0a16b64f3b90f756a96834f92d674ee9a0c4 100644
--- a/src/constants.c
+++ b/src/constants.c
@@ -17,7 +17,7 @@
 #include "security.h"
 #include "block_alloc.h"
 
-RCSID("$Id: constants.c,v 1.37 2002/06/25 14:26:40 grubba Exp $");
+RCSID("$Id: constants.c,v 1.38 2002/08/15 14:49:20 marcus Exp $");
 
 struct mapping *builtin_constants = 0;
 
@@ -91,7 +91,7 @@ PMOD_EXPORT struct callable *low_make_callable(c_fun fun,
   {
     struct pike_type *z = check_call(function_type_string, type, 0);
     f->may_return_void = (z == void_type_string);
-    if(!z) fatal("Gnapp!\n");
+    if(!z) Pike_fatal("Gnapp!\n");
     free_type(z);
   }
   f->runs=0;
diff --git a/src/cpp.c b/src/cpp.c
index a3d14bebdf04cc94e5f022313e1d17b4cc418279..0d68ed46b5d146b7d8313e7ae9a9f59b39a7df69 100644
--- a/src/cpp.c
+++ b/src/cpp.c
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: cpp.c,v 1.101 2002/05/31 22:41:23 nilsson Exp $
+ * $Id: cpp.c,v 1.102 2002/08/15 14:49:20 marcus Exp $
  */
 #include "global.h"
 #include "stralloc.h"
@@ -151,7 +151,7 @@ void cpp_error_sprintf(struct cpp *this, char *fmt, ...)  ATTRIBUTE((format(prin
   va_end(args);
 
   if((size_t)strlen(buf) >= (size_t)sizeof(buf))
-    fatal("Buffer overflow in cpp_error.\n");
+    Pike_fatal("Buffer overflow in cpp_error.\n");
 
   cpp_error(this, buf);
 }
@@ -220,7 +220,7 @@ static struct mapping *initial_predefs_mapping()
   struct pike_predef_s *def;
   struct mapping *map = allocate_mapping (0);
 #ifdef PIKE_DEBUG
-  if (!use_initial_predefs) fatal ("Initial predefs has been taken over.\n");
+  if (!use_initial_predefs) Pike_fatal ("Initial predefs has been taken over.\n");
 #endif
   for (def = first_predef; def; def = def->next) {
     push_string (make_shared_string (def->name));
@@ -951,7 +951,7 @@ static ptrdiff_t low_cpp(struct cpp *this, void *data, ptrdiff_t len,
     return lower_cpp2(this, (p_wchar2 *)data, len,
 		      flags, auto_convert, charset);
   default:
-    fatal("low_cpp(): Bad shift: %d\n", shift);
+    Pike_fatal("low_cpp(): Bad shift: %d\n", shift);
   }
   /* NOT_REACHED */
   return 0;
@@ -1056,7 +1056,7 @@ static void check_defined(struct cpp *this,
     s=binary_findstring2((p_wchar2 *)args[0].arg.ptr, args[0].len);
     break;
   default:
-    fatal("cpp(): Symbol has unsupported shift: %d\n", args[0].arg.shift);
+    Pike_fatal("cpp(): Symbol has unsupported shift: %d\n", args[0].arg.shift);
     break;
   }
   if(s && find_define(s))
@@ -1086,7 +1086,7 @@ static void dumpdef(struct cpp *this,
     s=binary_findstring2((p_wchar2 *)args[0].arg.ptr, args[0].len);
     break;
   default:
-    fatal("cpp(): Bad shift in macroname: %d\n", args[0].arg.shift);
+    Pike_fatal("cpp(): Bad shift in macroname: %d\n", args[0].arg.shift);
     break;
   }
   if(s && (d=find_define(s)))
diff --git a/src/cyclic.c b/src/cyclic.c
index f686f18574069fa228c3c4fdc7454321bfb2ec37..6ad110406ad9826b8c9973ce3207c0cda9594153 100644
--- a/src/cyclic.c
+++ b/src/cyclic.c
@@ -1,7 +1,7 @@
 #include "global.h"
 #include "cyclic.h"
 
-RCSID("$Id: cyclic.c,v 1.5 2000/08/10 08:54:34 grubba Exp $");
+RCSID("$Id: cyclic.c,v 1.6 2002/08/15 14:49:20 marcus Exp $");
 
 #define CYCLIC_HASH_SIZE 4711
 
@@ -29,7 +29,7 @@ static void low_unlink_cyclic(CYCLIC *c)
       return;
     }
   }
-  fatal("Unlink cyclic on lost cyclic struct.\n");
+  Pike_fatal("Unlink cyclic on lost cyclic struct.\n");
 }
 
 void unlink_cyclic(CYCLIC *c)
diff --git a/src/dlopen.c b/src/dlopen.c
index 572125ee50247d5b8aa420c2d3f993b76f6767f7..fb5f8a3e97c72499437764e51c5acf3f87605923 100644
--- a/src/dlopen.c
+++ b/src/dlopen.c
@@ -185,7 +185,7 @@ size_t STRNLEN(char *s, size_t maxlen)
 
 #else /* PIKE_CONCAT */
 
-RCSID("$Id: dlopen.c,v 1.31 2002/05/31 22:41:23 nilsson Exp $");
+RCSID("$Id: dlopen.c,v 1.32 2002/08/15 14:49:20 marcus Exp $");
 
 #endif
 
@@ -1808,7 +1808,7 @@ static void init_dlopen(void)
 
 #ifdef PIKE_DEBUG
     if(!data->coff->num_symbols)
-      fatal("No COFF symbols found in pike binary.\n");
+      Pike_fatal("No COFF symbols found in pike binary.\n");
 #endif      
     global_dlhandle.htable=alloc_htable(data->coff->num_symbols);
     
@@ -1961,7 +1961,7 @@ static void init_dlopen(void)
 
 #ifdef PIKE_DEBUG
   if(global_imagebase != (INT32)data->buffer)
-    fatal("LoadLibrary(ARGV[0]) didn't return instantiated program.\n");
+    Pike_fatal("LoadLibrary(ARGV[0]) didn't return instantiated program.\n");
 #endif 
 
 #ifdef DLDEBUG
diff --git a/src/docode.c b/src/docode.c
index ea692d07e82d1996e820753895a17602644881d4..d5cb3d64ef6637699b3a91ec5347b2712cc4b223 100644
--- a/src/docode.c
+++ b/src/docode.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: docode.c,v 1.143 2002/07/02 18:12:16 grubba Exp $");
+RCSID("$Id: docode.c,v 1.144 2002/08/15 14:49:20 marcus Exp $");
 #include "las.h"
 #include "program.h"
 #include "pike_types.h"
@@ -78,12 +78,12 @@ static int current_stack_depth = 0;
   cleanup_frame__.stack_depth = current_stack_depth;			\
   DO_IF_DEBUG(								\
     if (current_label->cleanups == (void *)(ptrdiff_t) -1)		\
-      fatal("current_label points to an unused statement_label.\n");	\
+      Pike_fatal("current_label points to an unused statement_label.\n");	\
   )									\
   if (current_label->break_label == -2) {				\
     DO_IF_DEBUG(							\
       if (current_label->prev->break_label == -2)			\
-        fatal("Found two open statement_label entries in a row.\n");	\
+        Pike_fatal("Found two open statement_label entries in a row.\n");	\
     )									\
     cleanup_frame__.prev = current_label->prev->cleanups;		\
     current_label->prev->cleanups = &cleanup_frame__;			\
@@ -99,7 +99,7 @@ static int current_stack_depth = 0;
   else {								\
     DO_IF_DEBUG(							\
       if (current_label->prev->cleanups != &cleanup_frame__)		\
-        fatal("Cleanup frame lost from statement_label cleanup list.\n");\
+        Pike_fatal("Cleanup frame lost from statement_label cleanup list.\n");\
     )									\
     current_label->prev->cleanups = cleanup_frame__.prev;		\
   }									\
@@ -123,7 +123,7 @@ static int current_stack_depth = 0;
 #define BLOCK_END							\
   if (current_stack_depth != cleanup_frame__.stack_depth) {		\
     print_tree(n);							\
-    fatal("Stack not in synch after block: is %d, should be %d.\n",	\
+    Pike_fatal("Stack not in synch after block: is %d, should be %d.\n",	\
 	  current_stack_depth, cleanup_frame__.stack_depth);		\
   }									\
   if (d_flag > 2) emit0(F_POP_SYNCH_MARK);				\
@@ -158,7 +158,7 @@ static int current_stack_depth = 0;
   DO_IF_DEBUG(								\
     if (new_label__.cleanups &&						\
 	new_label__.cleanups != (void *)(ptrdiff_t) -1)			\
-      fatal("Cleanup frames still left in statement_label.\n"));	\
+      Pike_fatal("Cleanup frames still left in statement_label.\n"));	\
 } while (0)
 
 struct switch_data
@@ -249,7 +249,7 @@ int ins_label(int lbl)
 void do_pop(int x)
 {
 #ifdef PIKE_DEBUG
-  if (x < 0) fatal("Cannot do pop of %d args.\n", x);
+  if (x < 0) Pike_fatal("Cannot do pop of %d args.\n", x);
 #endif
   switch(x)
   {
@@ -291,7 +291,7 @@ int do_docode(node *n, INT16 flags)
   if(!n) return 0;
   lex.current_line=n->line_number;
 #ifdef PIKE_DEBUG
-  if (current_stack_depth == -4711) fatal("do_docode() used outside docode().\n");
+  if (current_stack_depth == -4711) Pike_fatal("do_docode() used outside docode().\n");
 #endif
   i=do_docode2(check_node_hash(n), flags);
   current_stack_depth = stack_depth_save + i;
@@ -314,7 +314,7 @@ static void code_expression(node *n, INT16 flags, char *err)
   case 0: my_yyerror("Void expression for %s",err);
   case 1: return;
   case 2:
-    fatal("Internal compiler error (%s), line %ld, file %s\n",
+    Pike_fatal("Internal compiler error (%s), line %ld, file %s\n",
 	  err,
 	  (long)lex.current_line,
 	  lex.current_file?lex.current_file->str:"Unknown");
@@ -674,7 +674,7 @@ static int do_docode2(node *n, INT16 flags)
       if (!current_label->cleanups ||
 	  (current_label->cleanups->cleanup != do_pop_mark &&
 	   current_label->cleanups->cleanup != do_pop_to_mark))
-	fatal("F_PUSH_ARRAY unexpected in this context.\n");
+	Pike_fatal("F_PUSH_ARRAY unexpected in this context.\n");
 #endif
       current_label->cleanups->cleanup = do_pop_to_mark;
     }
@@ -787,7 +787,7 @@ static int do_docode2(node *n, INT16 flags)
 	case F_MOD_EQ: opname="`%"; break;
 	case F_DIV_EQ: opname="`/"; break;
 	default:
-	  fatal("Really???\n");
+	  Pike_fatal("Really???\n");
 	  opname="`make gcc happy";
       }
 
@@ -805,7 +805,7 @@ static int do_docode2(node *n, INT16 flags)
       tmp1=do_docode(CAR(n),DO_LVALUE);
 #ifdef PIKE_DEBUG
       if(tmp1 != 2)
-	fatal("HELP! FATAL INTERNAL COMPILER ERROR (7)\n");
+	Pike_fatal("HELP! FATAL INTERNAL COMPILER ERROR (7)\n");
 #endif
 
       if(n->token == F_ADD_EQ && (flags & DO_POP))
@@ -895,7 +895,7 @@ static int do_docode2(node *n, INT16 flags)
 	    case 2: emit0(F_LTOSVAL3); break;
 #ifdef PIKE_DEBUG
 	    default:
-	      fatal("Arglebargle glop-glyf?\n");
+	      Pike_fatal("Arglebargle glop-glyf?\n");
 #endif
 	  }
 	}else{
@@ -996,12 +996,12 @@ static int do_docode2(node *n, INT16 flags)
   case F_NOT:
   case F_COMPL:
   case F_NEGATE:
-    fatal("Optimizer error.\n");
+    Pike_fatal("Optimizer error.\n");
 
   case F_RANGE:
     tmp1=do_docode(CAR(n),DO_NOT_COPY_TOPLEVEL);
     if(do_docode(CDR(n),DO_NOT_COPY)!=2)
-      fatal("Compiler internal error (at %ld).\n",(long)lex.current_line);
+      Pike_fatal("Compiler internal error (at %ld).\n",(long)lex.current_line);
     emit0(n->token);
     return DO_NOT_WARN((INT32)tmp1);
 
@@ -1029,7 +1029,7 @@ static int do_docode2(node *n, INT16 flags)
 
 #ifdef PIKE_DEBUG
       if(tmp1 != 2)
-	fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");
+	Pike_fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");
 #endif
 
       emit0(F_MARK);
@@ -1054,7 +1054,7 @@ static int do_docode2(node *n, INT16 flags)
       tmp1=do_docode(CAR(n),DO_LVALUE);
 #ifdef PIKE_DEBUG
       if(tmp1 != 2)
-	fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");
+	Pike_fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");
 #endif
 
       if(flags & DO_POP)
@@ -1091,7 +1091,7 @@ static int do_docode2(node *n, INT16 flags)
 
 #ifdef PIKE_DEBUG
       if(tmp1 != 2)
-	fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");
+	Pike_fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");
 #endif
 
       emit0(F_MARK);
@@ -1116,7 +1116,7 @@ static int do_docode2(node *n, INT16 flags)
       tmp1=do_docode(CAR(n),DO_LVALUE);
 #ifdef PIKE_DEBUG
       if(tmp1 != 2)
-	fatal("HELP! FATAL INTERNAL COMPILER ERROR (2)\n");
+	Pike_fatal("HELP! FATAL INTERNAL COMPILER ERROR (2)\n");
 #endif
       if(flags & DO_POP)
       {
@@ -1577,7 +1577,7 @@ static int do_docode2(node *n, INT16 flags)
     PUSH_STATEMENT_LABEL;
 
     if(do_docode(CAR(n),0)!=1)
-      fatal("Internal compiler error, time to panic\n");
+      Pike_fatal("Internal compiler error, time to panic\n");
 
     if (!(CAR(n) && (current_switch.type = CAR(n)->type))) {
       current_switch.type = mixed_type_string;
@@ -1610,7 +1610,7 @@ static int do_docode2(node *n, INT16 flags)
 
 #ifdef PIKE_DEBUG
     if(Pike_sp-save_sp != cases)
-      fatal("Count cases is wrong!\n");
+      Pike_fatal("Count cases is wrong!\n");
 #endif
 
     f_aggregate(cases);
@@ -1679,7 +1679,7 @@ static int do_docode2(node *n, INT16 flags)
     BLOCK_END;
 #ifdef PIKE_DEBUG
     if(Pike_interpreter.recoveries && Pike_sp-Pike_interpreter.evaluator_stack < Pike_interpreter.recoveries->stack_pointer)
-      fatal("Stack error after F_SWITCH (underflow)\n");
+      Pike_fatal("Stack error after F_SWITCH (underflow)\n");
 #endif
     return 0;
   }
@@ -1915,14 +1915,14 @@ static int do_docode2(node *n, INT16 flags)
       tmp1=do_docode(CAR(n),DO_LVALUE);
 #ifdef PIKE_DEBUG
       if(tmp1 & 1)
-	fatal("Very internal compiler error.\n");
+	Pike_fatal("Very internal compiler error.\n");
 #endif
       emit1(F_ARRAY_LVALUE, DO_NOT_WARN((INT32)(tmp1>>1)));
       return 2;
 
   case F_ARROW:
     if(CDR(n)->token != F_CONSTANT || CDR(n)->u.sval.type!=T_STRING)
-      fatal("Bugg in F_ARROW, index not string.");
+      Pike_fatal("Bugg in F_ARROW, index not string.");
     if(flags & WANT_LVALUE)
     {
       /* FIXME!!!! ??? I wonder what needs fixing... /Hubbe */
@@ -1955,13 +1955,13 @@ static int do_docode2(node *n, INT16 flags)
       {
 #ifdef PIKE_DEBUG
 	if(!mklval)
-	  fatal("Unwanted lvalue!\n");
+	  Pike_fatal("Unwanted lvalue!\n");
 #endif
 	emit0(F_INDIRECT);
       }
       
       if(do_docode(CDR(n),0) != 1)
-	fatal("Internal compiler error, please report this (1).");
+	Pike_fatal("Internal compiler error, please report this (1).");
       if(CDR(n)->token != F_CONSTANT &&
 	match_types(CDR(n)->type, string_type_string))
 	emit0(F_CLEAR_STRING_SUBTYPE);
@@ -2034,7 +2034,7 @@ static int do_docode2(node *n, INT16 flags)
 #ifdef PIKE_DEBUG
     case T_OBJECT:
       if(n->u.sval.u.object->next == n->u.sval.u.object)
-	fatal("Internal error: Pointer to parent cannot be a compile time constant!\n");
+	Pike_fatal("Internal error: Pointer to parent cannot be a compile time constant!\n");
 #endif
       /* FALL_THROUGH */
     default:
@@ -2166,7 +2166,7 @@ static int do_docode2(node *n, INT16 flags)
     return 1;
 
   default:
-    fatal("Infernal compiler error (unknown parse-tree-token %d).\n", n->token);
+    Pike_fatal("Infernal compiler error (unknown parse-tree-token %d).\n", n->token);
     return 0;			/* make gcc happy */
   }
 }
@@ -2175,7 +2175,7 @@ INT32 do_code_block(node *n)
 {
   INT32 ret;
 #ifdef PIKE_DEBUG
-  if (current_stack_depth != -4711) fatal("Reentrance in do_code_block().\n");
+  if (current_stack_depth != -4711) Pike_fatal("Reentrance in do_code_block().\n");
   current_stack_depth = 0;
 #endif
 
diff --git a/src/dynamic_buffer.c b/src/dynamic_buffer.c
index b4a4a330eea454820400c3c265f32b381c9c1947..b4a5ea1642ce071eaf00d14f5c40e99d99a9cd07 100644
--- a/src/dynamic_buffer.c
+++ b/src/dynamic_buffer.c
@@ -10,7 +10,7 @@
 #include "pike_error.h"
 #include "pike_memory.h"
 
-RCSID("$Id: dynamic_buffer.c,v 1.15 2002/05/31 22:41:23 nilsson Exp $");
+RCSID("$Id: dynamic_buffer.c,v 1.16 2002/08/15 14:49:20 marcus Exp $");
 
 static dynamic_buffer buff;
 
@@ -18,7 +18,7 @@ PMOD_EXPORT char *low_make_buf_space(size_t space, dynamic_buffer *buf)
 {
   char *ret;
 #ifdef PIKE_DEBUG
-  if(!buf->s.str) fatal("ARRRRGH! Deadly Trap!\n");
+  if(!buf->s.str) Pike_fatal("ARRRRGH! Deadly Trap!\n");
 #endif
 
   if(buf->s.len+space >= buf->bufsize)
@@ -42,7 +42,7 @@ PMOD_EXPORT void low_my_putchar(char b,dynamic_buffer *buf)
 {
 #ifdef PIKE_DEBUG
   if(!buf->s.str)
-    fatal("Error in internal buffering.\n");
+    Pike_fatal("Error in internal buffering.\n");
 #endif
   low_make_buf_space(1,buf)[0]=b;
 }
@@ -52,7 +52,7 @@ PMOD_EXPORT void low_my_binary_strcat(const char *b, size_t l,
 {
 #ifdef PIKE_DEBUG
   if(!buf->s.str)
-    fatal("Error in internal buffering.\n");
+    Pike_fatal("Error in internal buffering.\n");
 #endif
 
   MEMCPY(low_make_buf_space(l, buf),b, l);
@@ -87,7 +87,7 @@ PMOD_EXPORT void low_init_buf_with_string(string s, dynamic_buffer *buf)
   buf->s.str=realloc(buf->s.str,buf->bufsize);
 #ifdef PIKE_DEBUG
   if(!buf->s.str)
-    fatal("Realloc failed.\n");
+    Pike_fatal("Realloc failed.\n");
 #endif
 }
 
diff --git a/src/dynamic_load.c b/src/dynamic_load.c
index 797bb7cbd62ddb5e48101fe59c2d0bebb3f7ac85..71469a5280c761401c85bf874cabfcb2a18025c9 100644
--- a/src/dynamic_load.c
+++ b/src/dynamic_load.c
@@ -17,7 +17,7 @@
 #  include "language.h"
 #  include "lex.h"
 
-RCSID("$Id: dynamic_load.c,v 1.63 2002/05/10 23:39:52 nilsson Exp $");
+RCSID("$Id: dynamic_load.c,v 1.64 2002/08/15 14:49:20 marcus Exp $");
 
 #else /* TESTING */
 
@@ -459,7 +459,7 @@ void f_load_module(INT32 args)
   UNSET_ONERROR(err);
 #ifdef PIKE_DEBUG
   if(Pike_sp != save_sp)
-    fatal("load_module(%s) left %ld droppings on stack!\n",
+    Pike_fatal("load_module(%s) left %ld droppings on stack!\n",
 	  module_name,
 	  PTRDIFF_T_TO_LONG(Pike_sp - save_sp));
   }
diff --git a/src/encode.c b/src/encode.c
index 3ac664f033c80c594533b35681355b39e0f60fc2..38dede2abf936a0b7f9caaf9004089a5688a67fb 100644
--- a/src/encode.c
+++ b/src/encode.c
@@ -26,7 +26,7 @@
 #include "bignum.h"
 #include "pikecode.h"
 
-RCSID("$Id: encode.c,v 1.150 2002/08/06 13:50:54 grubba Exp $");
+RCSID("$Id: encode.c,v 1.151 2002/08/15 14:49:20 marcus Exp $");
 
 /* #define ENCODE_DEBUG */
 
@@ -265,7 +265,7 @@ static void encode_type(struct pike_type *t, struct encode_data *data)
   }
   switch(t->type) {
     default:
-      fatal("error in type tree: %d.\n", t->type);
+      Pike_fatal("error in type tree: %d.\n", t->type);
       /*NOTREACHED*/
 
       break;
@@ -277,7 +277,7 @@ static void encode_type(struct pike_type *t, struct encode_data *data)
     
     case T_ASSIGN:
       if (((ptrdiff_t)t->car < 0) || ((ptrdiff_t)t->car > 9)) {
-	fatal("Bad assign marker: %ld\n", (long)(ptrdiff_t)t->car);
+	Pike_fatal("Bad assign marker: %ld\n", (long)(ptrdiff_t)t->car);
       }
       addchar('0' + (ptrdiff_t)t->car);
       t = t->cdr;
@@ -412,7 +412,7 @@ static void encode_value2(struct svalue *val, struct encode_data *data)
 
 #ifdef PIKE_DEBUG
 #undef encode_value2
-#define encode_value2(X,Y) do { struct svalue *_=Pike_sp; encode_value2_(X,Y); if(Pike_sp!=_) fatal("encode_value2 failed!\n"); } while(0)
+#define encode_value2(X,Y) do { struct svalue *_=Pike_sp; encode_value2_(X,Y); if(Pike_sp!=_) Pike_fatal("encode_value2 failed!\n"); } while(0)
 #endif
 
 {
@@ -965,7 +965,7 @@ static void encode_value2(struct svalue *val, struct encode_data *data)
 #ifdef PIKE_DEBUG
 	  if (p->num_program * sizeof(p->program[0]) !=
 	      data->buf.s.len - bufpos) {
-	    fatal("ENCODE_PROGRAM() failed:\n"
+	    Pike_fatal("ENCODE_PROGRAM() failed:\n"
 		  "Encoded data len: %ld\n"
 		  "Expected data len: %ld\n",
 		  DO_NOT_WARN((long)(p->num_program * sizeof(p->program[0]))),
@@ -1102,7 +1102,7 @@ static void encode_value2(struct svalue *val, struct encode_data *data)
 #ifdef PIKE_DEBUG
 	  if (p->num_program * sizeof(p->program[0]) !=
 	      data->buf.s.len - bufpos) {
-	    fatal("ENCODE_PROGRAM() failed:\n"
+	    Pike_fatal("ENCODE_PROGRAM() failed:\n"
 		  "Encoded data len: %ld\n"
 		  "Expected data len: %ld\n",
 		  DO_NOT_WARN((long)(p->num_program * sizeof(p->program[0]))),
@@ -1766,7 +1766,7 @@ static void restore_type_stack(struct pike_type **old_stackp)
 #endif /* 0 */
 #ifdef PIKE_DEBUG
   if (old_stackp > Pike_compiler->type_stackp) {
-    fatal("type stack out of sync!\n");
+    Pike_fatal("type stack out of sync!\n");
   }
 #endif /* PIKE_DEBUG */
   while(Pike_compiler->type_stackp > old_stackp) {
@@ -1782,7 +1782,7 @@ static void restore_type_mark(struct pike_type ***old_type_mark_stackp)
 #endif /* 0 */
 #ifdef PIKE_DEBUG
   if (old_type_mark_stackp > Pike_compiler->pike_type_mark_stackp) {
-    fatal("type Pike_interpreter.mark_stack out of sync!\n");
+    Pike_fatal("type Pike_interpreter.mark_stack out of sync!\n");
   }
 #endif /* PIKE_DEBUG */
   Pike_compiler->pike_type_mark_stackp = old_type_mark_stackp;
@@ -1977,7 +1977,7 @@ static void decode_value2(struct decode_data *data)
 
 #ifdef PIKE_DEBUG
 #undef decode_value2
-#define decode_value2(X) do { struct svalue *_=Pike_sp; decode_value2_(X); if(Pike_sp!=_+1) fatal("decode_value2 failed!\n"); } while(0)
+#define decode_value2(X) do { struct svalue *_=Pike_sp; decode_value2_(X); if(Pike_sp!=_+1) Pike_fatal("decode_value2 failed!\n"); } while(0)
 #endif
 
 
@@ -2808,7 +2808,7 @@ static void decode_value2(struct decode_data *data)
 	    int q;
 	    for(q=0;q<p->num_inherits;q++)
 	      if(!p->inherits[q].prog)
-		fatal("FOOBAR!@!!!\n");
+		Pike_fatal("FOOBAR!@!!!\n");
 	  }
 #endif
 
@@ -3578,7 +3578,7 @@ static void free_decode_data(struct decode_data *data)
     }
 #ifdef PIKE_DEBUG
     if (!d) {
-      fatal("Decode data fell off the stack!\n");
+      Pike_fatal("Decode data fell off the stack!\n");
     }
 #endif /* PIKE_DEBUG */
   }
@@ -3598,9 +3598,9 @@ static void free_decode_data(struct decode_data *data)
 
 #ifdef PIKE_DEBUG
   if(data->unfinished_programs)
-    fatal("We have unfinished programs left in decode()!\n");
+    Pike_fatal("We have unfinished programs left in decode()!\n");
   if(data->unfinished_objects)
-    fatal("We have unfinished objects left in decode()!\n");
+    Pike_fatal("We have unfinished objects left in decode()!\n");
 #endif
 
   while(data->unfinished_programs)
diff --git a/src/error.c b/src/error.c
index aed10d9e1cc396bff565a33e0fab6f284239de63..c4e55d57b962033f96b590b86e1dff38f6aba7e6 100644
--- a/src/error.c
+++ b/src/error.c
@@ -22,7 +22,7 @@
 #include "threads.h"
 #include "gc.h"
 
-RCSID("$Id: error.c,v 1.85 2002/05/31 22:41:23 nilsson Exp $");
+RCSID("$Id: error.c,v 1.86 2002/08/15 14:49:21 marcus Exp $");
 
 #undef ATTRIBUTE
 #define ATTRIBUTE(X)
@@ -76,7 +76,7 @@ PMOD_EXPORT void check_recovery_context(void)
 	    DO_NOT_WARN((long)TESTILITEST));
     fprintf(stderr, "Last recovery was added at %s\n",
 	    Pike_interpreter.recoveries->file);
-    fatal("Recoveries is out biking (Pike_interpreter.recoveries=%p, Pike_sp=%p, %ld)!\n",
+    Pike_fatal("Recoveries is out biking (Pike_interpreter.recoveries=%p, Pike_sp=%p, %ld)!\n",
 	  Pike_interpreter.recoveries, &foo,
 	  DO_NOT_WARN((long)TESTILITEST));
   }
@@ -121,18 +121,18 @@ PMOD_EXPORT DECLSPEC(noreturn) void pike_throw(void) ATTRIBUTE((noreturn))
   }
 
   if(!Pike_interpreter.recoveries)
-    fatal("No error recovery context.\n");
+    Pike_fatal("No error recovery context.\n");
 
 #ifdef PIKE_DEBUG
   if(Pike_sp - Pike_interpreter.evaluator_stack < Pike_interpreter.recoveries->stack_pointer)
-    fatal("Stack error in error.\n");
+    Pike_fatal("Stack error in error.\n");
 #endif
 
   while(Pike_fp != Pike_interpreter.recoveries->frame_pointer)
   {
 #ifdef PIKE_DEBUG
     if(!Pike_fp)
-      fatal("Popped out of stack frames.\n");
+      Pike_fatal("Popped out of stack frames.\n");
 #endif
     POP_PIKE_FRAME();
   }
@@ -196,7 +196,7 @@ void DECLSPEC(noreturn) va_error(const char *fmt, va_list args) ATTRIBUTE((noret
   {
     const char *tmp=in_error;
     in_error=0;
-    fatal("Recursive error() calls, original error: %s",tmp);
+    Pike_fatal("Recursive error() calls, original error: %s",tmp);
   }
 
   in_error=buf;
@@ -218,7 +218,7 @@ void DECLSPEC(noreturn) va_error(const char *fmt, va_list args) ATTRIBUTE((noret
   }
 
   if((size_t)strlen(buf) >= (size_t)sizeof(buf))
-    fatal("Buffer overflow in error()\n");
+    Pike_fatal("Buffer overflow in error()\n");
   
   low_error(buf);
 }
@@ -234,7 +234,7 @@ PMOD_EXPORT DECLSPEC(noreturn) void new_error(const char *name, const char *text
   {
     const char *tmp=in_error;
     in_error=0;
-    fatal("Recursive error() calls, original error: %s",tmp);
+    Pike_fatal("Recursive error() calls, original error: %s",tmp);
   }
 
   in_error=text;
@@ -566,7 +566,7 @@ DECLSPEC(noreturn) void generic_error_va(struct object *o,
   VSPRINTF(buf, fmt, foo);
 
   if(buf[sizeof(buf)-1])
-    fatal("Buffer overflow in error()\n");
+    Pike_fatal("Buffer overflow in error()\n");
 #endif /* HAVE_VSNPRINTF */
   in_error=buf;
 
@@ -591,7 +591,7 @@ DECLSPEC(noreturn) void generic_error_va(struct object *o,
   }
 
   if(Pike_sp[-1].type!=PIKE_T_ARRAY)
-    fatal("Error failed to generate a backtrace!\n");
+    Pike_fatal("Error failed to generate a backtrace!\n");
 
   ERROR_STRUCT(generic,o)->backtrace=Pike_sp[-1].u.array;
   Pike_sp--;
diff --git a/src/fd_control.c b/src/fd_control.c
index bee45e8bca6ec37c3b8d92019ef2e7707471ae9c..f2f8589bcc9fb9be1b1456416e3b2502899317a8 100644
--- a/src/fd_control.c
+++ b/src/fd_control.c
@@ -10,7 +10,7 @@
 #include "pike_error.h"
 #include "fdlib.h"
 
-RCSID("$Id: fd_control.c,v 1.40 2002/05/31 22:41:23 nilsson Exp $");
+RCSID("$Id: fd_control.c,v 1.41 2002/08/15 14:49:21 marcus Exp $");
 
 #else /* TESTING */
 
@@ -77,7 +77,7 @@ PMOD_EXPORT int set_nonblocking(int fd,int which)
   int ret;
 #ifdef PIKE_DEBUG
   if(fd<0)
-    fatal("Filedescriptor %d out of range [0,inf).\n", fd);
+    Pike_fatal("Filedescriptor %d out of range [0,inf).\n", fd);
 #endif
 
   do 
@@ -115,7 +115,7 @@ PMOD_EXPORT int query_nonblocking(int fd)
   int ret;
 #ifdef PIKE_DEBUG
   if(fd<0)
-    fatal("Filedescriptor out of range.\n");
+    Pike_fatal("Filedescriptor out of range.\n");
 #endif
 
   do 
@@ -164,7 +164,7 @@ static void grow_fds_to_close(void)
   fds_to_close_size *= 2;
   fds_to_close = realloc( fds_to_close, sizeof( int ) * fds_to_close_size );
   if(!fds_to_close)
-    fatal("Out of memory in fd_control::grow_fds_to_close()\n"
+    Pike_fatal("Out of memory in fd_control::grow_fds_to_close()\n"
           "Tried to allocate %d fd_datum structs\n", fds_to_close_size);
   MEMSET( fds_to_close+(fds_to_close_size/2), 0, fds_to_close_size*sizeof(int)/2 );
 }
diff --git a/src/fdlib.c b/src/fdlib.c
index 5d9ee38fc4ac580dfe65162c7c348858fdd6d70e..a5262ce193192447a1d30457e8386cce255af741 100644
--- a/src/fdlib.c
+++ b/src/fdlib.c
@@ -3,7 +3,7 @@
 #include "pike_error.h"
 #include <math.h>
 
-RCSID("$Id: fdlib.c,v 1.51 2002/03/15 09:31:54 tomas Exp $");
+RCSID("$Id: fdlib.c,v 1.52 2002/08/15 14:49:21 marcus Exp $");
 
 #ifdef HAVE_WINSOCK_H
 
@@ -52,7 +52,7 @@ static int IsValidHandle(HANDLE h)
 PMOD_EXPORT HANDLE CheckValidHandle(HANDLE h)
 {
   if(!IsValidHandle(h))
-    fatal("Invalid handle!\n");
+    Pike_fatal("Invalid handle!\n");
   return h;
 }
 #endif
@@ -100,7 +100,7 @@ void fd_init()
   mt_lock(&fd_mutex);
   if(WSAStartup(MAKEWORD(1,1), &wsadata) != 0)
   {
-    fatal("No winsock available.\n");
+    Pike_fatal("No winsock available.\n");
   }
   FDDEBUG(fprintf(stderr,"Using %s\n",wsadata.szDescription));
   
@@ -879,7 +879,7 @@ PMOD_EXPORT FD debug_fd_dup(FD from)
   HANDLE x,p=GetCurrentProcess();
 #ifdef DEBUG
   if(fd_type[from]>=FD_NO_MORE_FREE)
-    fatal("fd_dup() on file which is not open!\n");
+    Pike_fatal("fd_dup() on file which is not open!\n");
 #endif
   if(!DuplicateHandle(p,da_handle[from],p,&x,0,0,DUPLICATE_SAME_ACCESS))
   {
@@ -1023,7 +1023,7 @@ void fd_mapper_set(struct fd_mapper *x, FD fd, void *data)
     x->size*=2;
     x->data=(void **)realloc((char *)x->data, x->size*sizeof(void *));
     if(!x->data)
-      fatal("Out of memory.\n");
+      Pike_fatal("Out of memory.\n");
     x->data=nd;
   }
   x->data[fd]=data;
diff --git a/src/fdlib.h b/src/fdlib.h
index 5903ffffae8d53bb7ba9c7279f5f23f7a85cb018..f948a0024daed0f5b3046030c92e5612b610afa6 100644
--- a/src/fdlib.h
+++ b/src/fdlib.h
@@ -1,5 +1,5 @@
 /*
- * $Id: fdlib.h,v 1.40 2002/05/11 00:06:24 nilsson Exp $
+ * $Id: fdlib.h,v 1.41 2002/08/15 14:49:21 marcus Exp $
  */
 #ifndef FDLIB_H
 #define FDLIB_H
@@ -188,7 +188,7 @@ struct my_fd_set_s
 typedef struct my_fd_set_s my_fd_set;
 
 #ifdef PIKE_DEBUG
-#define fd_check_fd(X) do { if(fd_type[X]>=0) fatal("FD_SET on closed fd %d (%d) %s:%d.\n",X,da_handle[X],__FILE__,__LINE__); }while(0)
+#define fd_check_fd(X) do { if(fd_type[X]>=0) Pike_fatal("FD_SET on closed fd %d (%d) %s:%d.\n",X,da_handle[X],__FILE__,__LINE__); }while(0)
 #else
 #define fd_check_fd(X)
 #endif
diff --git a/src/fsort_template.h b/src/fsort_template.h
index 070ac51c5d3c3aa744d0c8427f70790a4dc24887..8b444fe68d4840eac42c5ce46b86162b4574fc58 100644
--- a/src/fsort_template.h
+++ b/src/fsort_template.h
@@ -1,5 +1,5 @@
 /*
- * $Id: fsort_template.h,v 1.10 2001/09/24 17:07:13 grubba Exp $
+ * $Id: fsort_template.h,v 1.11 2002/08/15 14:49:21 marcus Exp $
  */
 
 #ifndef SWAP
@@ -82,7 +82,7 @@ static void MKNAME(_do_sort)(register TYPE *bas,
 	if(d_flag>1)
 	  for(x=howmany-1;x;x--)
 	    if( CMP( STEP(bas,x-1), STEP(bas,x)  ) > 0)
-	      fatal("Sorting failed!\n");
+	      Pike_fatal("Sorting failed!\n");
 #endif
 	
 	return;
diff --git a/src/gc.c b/src/gc.c
index 215e7611ae6ae35e1137b99b13f0ef36c51e33ff..c2b39a74e4af6c3893df67156280cd227811405a 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -30,7 +30,7 @@ struct callback *gc_evaluator_callback=0;
 
 #include "block_alloc.h"
 
-RCSID("$Id: gc.c,v 1.184 2002/06/11 17:30:38 mast Exp $");
+RCSID("$Id: gc.c,v 1.185 2002/08/15 14:49:21 marcus Exp $");
 
 /* Run garbage collect approximately every time
  * 20 percent of all arrays, objects and programs is
@@ -664,7 +664,7 @@ void debug_gc_fatal(void *a, int flags, const char *fmt, ...)
 static void gdb_gc_stop_here(void *a, int weak)
 {
 #if 0
-  if (!found_where) fatal("found_where is zero.\n");
+  if (!found_where) Pike_fatal("found_where is zero.\n");
 #endif
   fprintf(stderr,"***One %sref found%s. ",
 	  weak ? "weak " : "",
@@ -1123,7 +1123,7 @@ void debug_gc_touch(void *a)
 	    "gc_touch() in pass %d.\n", a, Pike_in_gc);
   }
 
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
 
   switch (Pike_in_gc) {
     case GC_PASS_PRETOUCH:
@@ -1195,7 +1195,7 @@ void debug_gc_touch(void *a)
       break;
 
     default:
-      fatal("debug_gc_touch() used in invalid gc pass.\n");
+      Pike_fatal("debug_gc_touch() used in invalid gc pass.\n");
   }
 }
 
@@ -1203,7 +1203,7 @@ static INLINE struct marker *gc_check_debug(void *a, int weak)
 {
   struct marker *m;
 
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
   if(Pike_in_gc == GC_PASS_LOCATE)
   {
     if(check_for == a)
@@ -1214,7 +1214,7 @@ static INLINE struct marker *gc_check_debug(void *a, int weak)
   }
 
   if (Pike_in_gc != GC_PASS_CHECK)
-    fatal("gc check attempted in invalid pass.\n");
+    Pike_fatal("gc check attempted in invalid pass.\n");
 
   m = get_marker(a);
 
@@ -1460,9 +1460,9 @@ int debug_gc_is_referenced(void *a)
 	    "gc_is_referenced() in pass %d.\n", a, Pike_in_gc);
   }
 
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
   if (Pike_in_gc != GC_PASS_MARK)
-    fatal("gc_is_referenced() called in invalid gc pass.\n");
+    Pike_fatal("gc_is_referenced() called in invalid gc pass.\n");
 
   if (gc_debug) {
     m = find_marker(a);
@@ -1490,7 +1490,7 @@ int gc_external_mark3(void *a, void *in, char *where)
 	    "gc_external_mark3() in pass %d.\n", a, Pike_in_gc);
   }
 
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
 
   if(Pike_in_gc == GC_PASS_LOCATE)
   {
@@ -1511,7 +1511,7 @@ int gc_external_mark3(void *a, void *in, char *where)
   }
 
   if (Pike_in_gc != GC_PASS_CHECK)
-    fatal("gc_external_mark() called in invalid gc pass.\n");
+    Pike_fatal("gc_external_mark() called in invalid gc pass.\n");
 
   m=get_marker(a);
   m->xrefs++;
@@ -1551,9 +1551,9 @@ int gc_do_weak_free(void *a)
     fprintf(stderr, "## Watched thing %p found in "
 	    "gc_do_weak_free() in pass %d.\n", a, Pike_in_gc);
   }
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
   if (Pike_in_gc != GC_PASS_MARK && Pike_in_gc != GC_PASS_ZAP_WEAK)
-    fatal("gc_do_weak_free() called in invalid gc pass.\n");
+    Pike_fatal("gc_do_weak_free() called in invalid gc pass.\n");
   if (gc_debug) {
     if (!(m = find_marker(a)))
       gc_fatal(a, 0, "gc_do_weak_free() got unknown object.\n");
@@ -1616,14 +1616,14 @@ void gc_delayed_free(void *a, int type)
   }
   if (Pike_in_gc != GC_PASS_MARK && Pike_in_gc != GC_PASS_CYCLE &&
       Pike_in_gc != GC_PASS_ZAP_WEAK)
-    fatal("gc_delayed_free() called in invalid gc pass.\n");
+    Pike_fatal("gc_delayed_free() called in invalid gc pass.\n");
   if (gc_debug) {
     if (!(m = find_marker(a)))
       gc_fatal(a, 0, "gc_delayed_free() got unknown object (missed by pretouch pass).\n");
   }
   else m = get_marker(a);
   if (*(INT32 *) a != 1)
-    fatal("gc_delayed_free() called for thing that haven't got a single ref.\n");
+    Pike_fatal("gc_delayed_free() called for thing that haven't got a single ref.\n");
   debug_malloc_touch(a);
   delayed_freed++;
 #else
@@ -1675,9 +1675,9 @@ int gc_mark(void *a)
     fprintf(stderr, "## Watched thing %p found in "
 	    "gc_mark() in pass %d.\n", a, Pike_in_gc);
   }
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
   if (Pike_in_gc != GC_PASS_MARK && Pike_in_gc != GC_PASS_ZAP_WEAK)
-    fatal("gc mark attempted in invalid pass.\n");
+    Pike_fatal("gc mark attempted in invalid pass.\n");
   if (!*(INT32 *) a)
     gc_fatal(a, 0, "Marked a thing without refs.\n");
   if (m->weak_refs < 0)
@@ -1780,7 +1780,7 @@ void gc_cycle_run_queue()
 {
 #ifdef PIKE_DEBUG
   if (Pike_in_gc != GC_PASS_CYCLE)
-    fatal("Use of the gc frame stack outside the cycle check pass.\n");
+    Pike_fatal("Use of the gc frame stack outside the cycle check pass.\n");
 #endif
   while (gc_rec_top) {
 #ifdef GC_STACK_DEBUG
@@ -1824,7 +1824,7 @@ static void rotate_rec_list (struct gc_frame *beg, struct gc_frame *pos)
 
 #ifdef PIKE_DEBUG
   if (Pike_in_gc != GC_PASS_CYCLE)
-    fatal("Use of the gc frame stack outside the cycle check pass.\n");
+    Pike_fatal("Use of the gc frame stack outside the cycle check pass.\n");
   CHECK_POP_FRAME(beg);
   CHECK_POP_FRAME(pos);
   if (beg == pos)
@@ -1923,10 +1923,10 @@ int gc_cycle_push(void *x, struct marker *m, int weak)
 
   debug_malloc_touch(x);
 
-  if (!x) fatal("Got null pointer.\n");
-  if (m->data != x) fatal("Got wrong marker.\n");
+  if (!x) Pike_fatal("Got null pointer.\n");
+  if (m->data != x) Pike_fatal("Got wrong marker.\n");
   if (Pike_in_gc != GC_PASS_CYCLE)
-    fatal("GC cycle push attempted in invalid pass.\n");
+    Pike_fatal("GC cycle push attempted in invalid pass.\n");
   if (gc_debug && !(m->flags & GC_PRETOUCHED))
     gc_fatal(x, 0, "gc_cycle_push() called for untouched thing.\n");
   if ((!(m->flags & GC_NOT_REFERENCED) || m->flags & GC_MARKED) &&
@@ -1985,7 +1985,7 @@ int gc_cycle_push(void *x, struct marker *m, int weak)
 	struct gc_frame *l = gc_rec_top;
 #ifdef PIKE_DEBUG
 	if (!gc_rec_top)
-	  fatal("Expected a gc_cycle_pop entry in gc_rec_top.\n");
+	  Pike_fatal("Expected a gc_cycle_pop entry in gc_rec_top.\n");
 #endif
 	gc_rec_top = l->back;
 	if (l->frameflags & GC_POP_FRAME) {
@@ -2156,7 +2156,7 @@ int gc_cycle_push(void *x, struct marker *m, int weak)
 live_recurse:
 #ifdef PIKE_DEBUG
   if (m->flags & GC_LIVE)
-    fatal("Shouldn't live recurse when there's nothing to do.\n");
+    Pike_fatal("Shouldn't live recurse when there's nothing to do.\n");
 #endif
   m->flags |= GC_LIVE|GC_LIVE_RECURSE;
   debug_malloc_touch(x);
@@ -2199,9 +2199,9 @@ static void gc_cycle_pop(void *a)
     fprintf(stderr, "## Watched thing %p found in "
 	    "gc_cycle_pop() in pass %d.\n", a, Pike_in_gc);
   }
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
   if (Pike_in_gc != GC_PASS_CYCLE)
-    fatal("GC cycle pop attempted in invalid pass.\n");
+    Pike_fatal("GC cycle pop attempted in invalid pass.\n");
   if (!(m->flags & GC_CYCLE_CHECKED))
     gc_fatal(a, 0, "Marker being popped doesn't have GC_CYCLE_CHECKED.\n");
   if ((!(m->flags & GC_NOT_REFERENCED) || m->flags & GC_MARKED) &&
@@ -2314,9 +2314,9 @@ int gc_do_free(void *a)
     fprintf(stderr, "## Watched thing %p found in "
 	    "gc_do_free() in pass %d.\n", a, Pike_in_gc);
   }
-  if (!a) fatal("Got null pointer.\n");
+  if (!a) Pike_fatal("Got null pointer.\n");
   if (Pike_in_gc != GC_PASS_FREE)
-    fatal("gc free attempted in invalid pass.\n");
+    Pike_fatal("gc free attempted in invalid pass.\n");
 #endif
 
   m=find_marker(debug_malloc_pass(a));
@@ -2440,7 +2440,7 @@ int do_gc(void)
 #endif
   }
   if(num_objects < 0)
-    fatal("Panic, less than zero objects!\n");
+    Pike_fatal("Panic, less than zero objects!\n");
 #endif
 
   last_gc=TIME(0);
@@ -2467,7 +2467,7 @@ int do_gc(void)
     n += gc_touch_all_objects();
     gc_touch_all_strings();
     if (n != (unsigned) num_objects)
-      fatal("Object count wrong before gc; expected %d, got %d.\n", num_objects, n);
+      Pike_fatal("Object count wrong before gc; expected %d, got %d.\n", num_objects, n);
     GC_VERBOSE_DO(fprintf(stderr, "| pretouch: %u things\n", n));
   }
 #endif
@@ -2557,11 +2557,11 @@ int do_gc(void)
 
 #ifdef PIKE_DEBUG
     if (gc_rec_top)
-      fatal("gc_rec_top not empty at end of cycle check pass.\n");
+      Pike_fatal("gc_rec_top not empty at end of cycle check pass.\n");
     if (NEXT(&rec_list) || gc_rec_last != &rec_list || gc_rec_top)
-      fatal("Recurse list not empty or inconsistent after cycle check pass.\n");
+      Pike_fatal("Recurse list not empty or inconsistent after cycle check pass.\n");
     if (gc_ext_weak_refs != orig_ext_weak_refs)
-      fatal("gc_ext_weak_refs changed from %"PRINTSIZET"u "
+      Pike_fatal("gc_ext_weak_refs changed from %"PRINTSIZET"u "
 	    "to %"PRINTSIZET"u in cycle check pass.\n",
 	    orig_ext_weak_refs, gc_ext_weak_refs);
 #endif
@@ -2617,7 +2617,7 @@ int do_gc(void)
     n += gc_touch_all_objects();
     gc_touch_all_strings();
     if (n != (unsigned) num_objects)
-      fatal("Object count wrong in gc; expected %d, got %d.\n", num_objects, n);
+      Pike_fatal("Object count wrong in gc; expected %d, got %d.\n", num_objects, n);
     get_marker(rec_list.data)->flags |= GC_MIDDLETOUCHED;
 #if 0 /* Temporarily disabled - Hubbe */
 #ifdef DEBUG_MALLOC
@@ -2632,7 +2632,7 @@ int do_gc(void)
 	Pike_in_gc = 0;
 	describe(m->data);
 	Pike_in_gc = GC_PASS_MIDDLETOUCH;
-	fatal("Fatal in garbage collector.\n");
+	Pike_fatal("Fatal in garbage collector.\n");
       }
 #endif
 #endif
@@ -2704,7 +2704,7 @@ int do_gc(void)
   gc_internal_program = (struct program *) (ptrdiff_t) -1;
   gc_internal_object = (struct object *) (ptrdiff_t) -1;
 
-  if(fatal_after_gc) fatal("%s", fatal_after_gc);
+  if(fatal_after_gc) Pike_fatal("%s", fatal_after_gc);
 #endif
 
   Pike_in_gc=GC_PASS_KILL;
@@ -2773,12 +2773,12 @@ int do_gc(void)
     n += gc_touch_all_objects();
     /* gc_touch_all_strings(); */
     if (n != (unsigned) num_objects)
-      fatal("Object count wrong after gc; expected %d, got %d.\n", num_objects, n);
+      Pike_fatal("Object count wrong after gc; expected %d, got %d.\n", num_objects, n);
     GC_VERBOSE_DO(fprintf(stderr, "| posttouch: %u things\n", n));
   }
   if (gc_extra_refs)
-    fatal("Lost track of %d extra refs to things in gc.\n", gc_extra_refs);
-  if(fatal_after_gc) fatal("%s", fatal_after_gc);
+    Pike_fatal("Lost track of %d extra refs to things in gc.\n", gc_extra_refs);
+  if(fatal_after_gc) Pike_fatal("%s", fatal_after_gc);
 #endif
 
   Pike_in_gc=0;
diff --git a/src/gc.h b/src/gc.h
index c79f2fdc5aed49525eda19bb954c4e35642ec238..085258730914dcef96ad2707556effd304422ec0 100644
--- a/src/gc.h
+++ b/src/gc.h
@@ -1,5 +1,5 @@
 /*
- * $Id: gc.h,v 1.89 2001/12/16 18:51:21 mast Exp $
+ * $Id: gc.h,v 1.90 2002/08/15 14:49:21 marcus Exp $
  */
 #ifndef GC_H
 #define GC_H
@@ -33,7 +33,7 @@ extern void *gc_svalue_location;
    if(d_flag) CHECK_INTERPRETER_LOCK();					\
    if((Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE) ||	\
       Pike_in_gc == GC_PASS_LOCATE)					\
-     fatal("Allocating new objects within gc is not allowed!\n");	\
+     Pike_fatal("Allocating new objects within gc is not allowed!\n");	\
  )									\
  if (Pike_in_gc) remove_marker(OBJ);					\
 } while (0)
@@ -59,7 +59,7 @@ extern void *gc_svalue_location;
   extern int d_flag;							\
   if(d_flag) CHECK_INTERPRETER_LOCK();					\
   if (Pike_in_gc == GC_PASS_CHECK || Pike_in_gc == GC_PASS_LOCATE)	\
-    fatal("No free is allowed in this gc pass.\n");			\
+    Pike_fatal("No free is allowed in this gc pass.\n");			\
   else									\
     remove_marker(PTR);							\
 } while (0)
@@ -71,7 +71,7 @@ extern void *gc_svalue_location;
   if(d_flag) CHECK_INTERPRETER_LOCK();					\
   if ((Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE) ||	\
       Pike_in_gc == GC_PASS_LOCATE)					\
-    fatal("Freeing objects within gc is not allowed.\n");		\
+    Pike_fatal("Freeing objects within gc is not allowed.\n");		\
 } while (0)
 
 #else
@@ -83,7 +83,7 @@ extern void *gc_svalue_location;
   GC_FREE_BLOCK(PTR);							\
   DO_IF_DEBUG(								\
     if(num_objects < 1)							\
-      fatal("Panic!! less than zero objects!\n");			\
+      Pike_fatal("Panic!! less than zero objects!\n");			\
   );									\
   num_objects-- ;							\
 }while(0)
@@ -265,12 +265,12 @@ void cleanup_gc(void);
 } while (0)
 #define gc_assert_checked_as_weak(X) do {				\
   if (!(find_marker(X)->flags & GC_CHECKED_AS_WEAK))			\
-    fatal("A thing was checked as nonweak but "				\
+    Pike_fatal("A thing was checked as nonweak but "				\
 	  "marked or cycle checked as weak.\n");			\
 } while (0)
 #define gc_assert_checked_as_nonweak(X) do {				\
   if (find_marker(X)->flags & GC_CHECKED_AS_WEAK)			\
-    fatal("A thing was checked as weak but "				\
+    Pike_fatal("A thing was checked as weak but "				\
 	  "marked or cycle checked as nonweak.\n");			\
 } while (0)
 #else
@@ -392,7 +392,7 @@ extern int gc_in_cycle_check;
   if (!(_m_->flags & GC_MARKED)) {					\
     DO_IF_DEBUG(							\
       if (gc_in_cycle_check)						\
-	fatal("Recursing immediately in gc cycle check.\n");		\
+	Pike_fatal("Recursing immediately in gc cycle check.\n");		\
       gc_in_cycle_check = 1;						\
     );									\
     if (gc_cycle_push(_thing_, _m_, (WEAK))) {
@@ -405,7 +405,7 @@ extern int gc_in_cycle_check;
       _m_->flags |= GC_LIVE|GC_LIVE_OBJ;				\
     DO_IF_DEBUG(							\
       if (gc_in_cycle_check)						\
-	fatal("Recursing immediately in gc cycle check.\n");		\
+	Pike_fatal("Recursing immediately in gc cycle check.\n");		\
       gc_in_cycle_check = 1;						\
     );									\
     if (gc_cycle_push(_thing_, _m_, (WEAK))) {
diff --git a/src/hashtable.c b/src/hashtable.c
index 5e8ba8f3845cfa514c286b731001e382e419d132..6582ffba6aa17002871290e3517b90a217d7ab36 100644
--- a/src/hashtable.c
+++ b/src/hashtable.c
@@ -10,7 +10,7 @@
 #include "stuff.h"
 #include "pike_error.h"
 
-RCSID("$Id: hashtable.c,v 1.10 2002/05/31 22:41:24 nilsson Exp $");
+RCSID("$Id: hashtable.c,v 1.11 2002/08/15 14:49:21 marcus Exp $");
 
 static size_t gobble(struct pike_string *s)
 {
@@ -85,7 +85,7 @@ struct hash_table *hash_rehash(struct hash_table *h,int size)
 
 #ifdef PIKE_DEBUG
   if( 1 << my_log2(size) != size)
-    fatal("Size is not a power of two!\n");
+    Pike_fatal("Size is not a power of two!\n");
 #endif
 
   new=(struct hash_table *)calloc(1,sizeof(struct hash_table)+
@@ -142,7 +142,7 @@ struct hash_table *hash_unlink(struct hash_table *h, struct hash_entry *s)
     }
   }
 #ifdef PIKE_DEBUG
-  fatal("hash_entry not in hashtable\n");
+  Pike_fatal("hash_entry not in hashtable\n");
 #endif
   return h;
 }
diff --git a/src/interpret.c b/src/interpret.c
index 4abd9db9d7aa113f0bf749070aaaa6510e688334..c3b749b4ea31501be270cf003276fb4f27f6ed26 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.262 2002/06/25 14:26:40 grubba Exp $");
+RCSID("$Id: interpret.c,v 1.263 2002/08/15 14:49:21 marcus Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -118,7 +118,7 @@ ptrdiff_t pop_sp_mark(void)
 {
 #ifdef PIKE_DEBUG
   if(Pike_mark_sp < Pike_interpreter.mark_stack)
-    fatal("Mark stack underflow!\n");
+    Pike_fatal("Mark stack underflow!\n");
 #endif
   return Pike_sp - *--Pike_mark_sp;
 }
@@ -531,7 +531,7 @@ PMOD_EXPORT void find_external_context(struct external_variable_context *loc,
 	  struct external_variable_context tmp=*loc;
 #ifdef PIKE_DEBUG
 	  if(!loc->inherit->inherit_level)
-	    fatal("Gahhh! inherit level zero in wrong place!\n");
+	    Pike_fatal("Gahhh! inherit level zero in wrong place!\n");
 #endif
 	  while(tmp.inherit->inherit_level >= loc->inherit->inherit_level)
 	  {
@@ -579,21 +579,21 @@ PMOD_EXPORT void find_external_context(struct external_variable_context *loc,
     if (loc->o->refs == 0x55555555) {
       fprintf(stderr, "The object %p has been zapped!\n", loc->o);
       describe(p);
-      fatal("Object zapping detected.\n");
+      Pike_fatal("Object zapping detected.\n");
     }
     if (p->refs == 0x55555555) {
       fprintf(stderr, "The program %p has been zapped!\n", p);
       describe(p);
       fprintf(stderr, "Which taken from the object %p\n", loc->o);
       describe(loc->o);
-      fatal("Looks like the program %p has been zapped!\n", p);
+      Pike_fatal("Looks like the program %p has been zapped!\n", p);
     }
 #endif /* DEBUG_MALLOC */
     
 #ifdef PIKE_DEBUG
     if(loc->parent_identifier < 0 ||
        loc->parent_identifier > p->num_identifier_references)
-      fatal("Identifier out of range, loc->parent_identifer=%d!\n",
+      Pike_fatal("Identifier out of range, loc->parent_identifer=%d!\n",
 	    loc->parent_identifier);
 #endif
 
@@ -617,7 +617,7 @@ PMOD_EXPORT void find_external_context(struct external_variable_context *loc,
       describe(p);
       fprintf(stderr, "Which was in turn taken from the object %p\n", loc->o);
       describe(loc->o);
-      fatal("Looks like the program %p has been zapped!\n", p);
+      Pike_fatal("Looks like the program %p has been zapped!\n", p);
     }
 #endif /* DEBUG_MALLOC */
   }
@@ -767,7 +767,7 @@ static int o_catch(PIKE_OPCODE_T *pc);
 #ifdef PIKE_DEBUG
 #define EVAL_INSTR_RET_CHECK(x)						\
   if (x == -2)								\
-    fatal("Return value -2 from eval_instruction is not handled here.\n"\
+    Pike_fatal("Return value -2 from eval_instruction is not handled here.\n"\
 	  "Probable cause: F_ESCAPE_CATCH outside catch block.\n")
 #else
 #define EVAL_INSTR_RET_CHECK(x)
@@ -856,7 +856,7 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
     fprintf(stderr, "Calling code at 0x%p:\n", pc);
 #ifdef PIKE_OPCODE_ALIGN
     if (((INT32)pc) % PIKE_OPCODE_ALIGN) {
-      fatal("Odd offset!\n");
+      Pike_fatal("Odd offset!\n");
     }
 #endif /* PIKE_OPCODE_ALIGN */
     for (i=0; i < 16; i+=4) {
@@ -1044,7 +1044,7 @@ static void do_trace_call(INT32 args)
   })									\
   DO_IF_DEBUG(								\
   if(X->flags & PIKE_FRAME_MALLOCED_LOCALS)				\
-  fatal("Pike frame is not supposed to have malloced locals here!\n"));	\
+  Pike_fatal("Pike frame is not supposed to have malloced locals here!\n"));	\
  									\
   DO_IF_DMALLOC(							\
     X->context.prog=0;							\
@@ -1090,10 +1090,10 @@ int low_mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2)
       CHECK_INTERPRETER_LOCK();
 
       if( Pike_interpreter.thread_id && !th_equal( OBJ2THREAD(Pike_interpreter.thread_id)->id, self) )
-	fatal("Current thread is wrong.\n");
+	Pike_fatal("Current thread is wrong.\n");
 	
       if(thread_for_id(th_self()) != Pike_interpreter.thread_id)
-	fatal("thread_for_id() (or Pike_interpreter.thread_id) failed in mega_apply! "
+	Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed in mega_apply! "
 	      "%p != %p\n", thread_for_id(self), Pike_interpreter.thread_id);
     }
 #endif
@@ -1152,16 +1152,16 @@ int low_mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2)
 	if(Pike_sp != expected_stack + !s->u.efun->may_return_void)
 	{
 	  if(Pike_sp < expected_stack)
-	    fatal("Function popped too many arguments: %s\n",
+	    Pike_fatal("Function popped too many arguments: %s\n",
 		  s->u.efun->name->str);
 	  if(Pike_sp>expected_stack+1)
-	    fatal("Function left droppings on stack: %s\n",
+	    Pike_fatal("Function left droppings on stack: %s\n",
 		  s->u.efun->name->str);
 	  if(Pike_sp == expected_stack && !s->u.efun->may_return_void)
-	    fatal("Non-void function returned without return value on stack: %s %d\n",
+	    Pike_fatal("Non-void function returned without return value on stack: %s %d\n",
 		  s->u.efun->name->str,s->u.efun->may_return_void);
 	  if(Pike_sp==expected_stack+1 && s->u.efun->may_return_void)
-	    fatal("Void function returned with a value on the stack: %s %d\n",
+	    Pike_fatal("Void function returned with a value on the stack: %s %d\n",
 		  s->u.efun->name->str, s->u.efun->may_return_void);
 	}
 #endif
@@ -1225,7 +1225,7 @@ int low_mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2)
   call_lfun:
 #ifdef PIKE_DEBUG
     if(fun < 0 || fun >= NUM_LFUNS)
-      fatal("Apply lfun on illegal value!\n");
+      Pike_fatal("Apply lfun on illegal value!\n");
 #endif
     if(!o->prog)
       PIKE_ERROR("destructed object", "Apply on destructed object.\n", Pike_sp, args);
@@ -1298,9 +1298,9 @@ int low_mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2)
   struct svalue *save_sp=Pike_fp->save_sp;		\
   DO_IF_DEBUG(						\
     if(Pike_mark_sp < Pike_fp->save_mark_sp)		\
-      fatal("Popped below save_mark_sp!\n");		\
+      Pike_fatal("Popped below save_mark_sp!\n");		\
     if(Pike_sp<Pike_interpreter.evaluator_stack)	\
-      fatal("Stack error (also simple).\n");		\
+      Pike_fatal("Stack error (also simple).\n");		\
     )							\
 							\
     Pike_mark_sp=Pike_fp->save_mark_sp;			\
@@ -1356,7 +1356,7 @@ void unlink_previous_frame(void)
     {
       while(rec->frame_pointer == current) rec=rec->previous;
       if(rec->frame_pointer == current->next)
-	fatal("You can't touch this!\n");
+	Pike_fatal("You can't touch this!\n");
     }
   }
 #endif
@@ -1447,7 +1447,7 @@ static int o_catch(PIKE_OPCODE_T *pc)
     x=eval_instruction(pc);
 #ifdef PIKE_DEBUG
     if(Pike_mark_sp < save_mark_sp)
-      fatal("mark Pike_sp underflow in catch.\n");
+      Pike_fatal("mark Pike_sp underflow in catch.\n");
 #endif
     Pike_mark_sp=save_mark_sp;
     Pike_fp->expendible=expendible;
@@ -1527,7 +1527,7 @@ PMOD_EXPORT int apply_low_safe_and_stupid(struct object *o, INT32 offset)
     
 #ifdef PIKE_DEBUG
     if(Pike_sp<Pike_interpreter.evaluator_stack)
-      fatal("Stack error (simple).\n");
+      Pike_fatal("Stack error (simple).\n");
 #endif
     ret=0;
   }
@@ -1579,7 +1579,7 @@ PMOD_EXPORT void safe_apply_low(struct object *o,int fun,int args)
 PMOD_EXPORT void safe_apply(struct object *o, char *fun ,INT32 args)
 {
 #ifdef PIKE_DEBUG
-  if(!o->prog) fatal("Apply safe on destructed object.\n");
+  if(!o->prog) Pike_fatal("Apply safe on destructed object.\n");
 #endif
   safe_apply_low2(o, find_identifier(fun, o->prog), args, 1);
 }
@@ -1690,7 +1690,7 @@ PMOD_EXPORT void apply_lfun(struct object *o, int fun, int args)
 {
 #ifdef PIKE_DEBUG
   if(fun < 0 || fun >= NUM_LFUNS)
-    fatal("Apply lfun on illegal value!\n");
+    Pike_fatal("Apply lfun on illegal value!\n");
 #endif
   if(!o->prog)
     PIKE_ERROR("destructed object", "Apply on destructed object.\n", Pike_sp, args);
@@ -1731,7 +1731,7 @@ PMOD_EXPORT void apply_svalue(struct svalue *s, INT32 args)
     }
 #ifdef PIKE_DEBUG
     if(Pike_sp < (expected_stack + Pike_interpreter.evaluator_stack))
-      fatal("Stack underflow!\n");
+      Pike_fatal("Stack underflow!\n");
 #endif
   }
 }
@@ -1745,16 +1745,16 @@ void slow_check_stack(void)
   debug_check_stack();
 
   if(Pike_sp > &(Pike_interpreter.evaluator_stack[Pike_stack_size]))
-    fatal("Svalue stack overflow. "
+    Pike_fatal("Svalue stack overflow. "
 	  "(%ld entries on stack, stack_size is %ld entries)\n",
 	  PTRDIFF_T_TO_LONG(Pike_sp - Pike_interpreter.evaluator_stack),
 	  PTRDIFF_T_TO_LONG(Pike_stack_size));
 
   if(Pike_mark_sp > &(Pike_interpreter.mark_stack[Pike_stack_size]))
-    fatal("Mark stack overflow.\n");
+    Pike_fatal("Mark stack overflow.\n");
 
   if(Pike_mark_sp < Pike_interpreter.mark_stack)
-    fatal("Mark stack underflow.\n");
+    Pike_fatal("Mark stack underflow.\n");
 
   for(s=Pike_interpreter.evaluator_stack;s<Pike_sp;s++) check_svalue(s);
 
@@ -1762,13 +1762,13 @@ void slow_check_stack(void)
   for(m=Pike_interpreter.mark_stack;m<Pike_mark_sp;m++)
   {
     if(*m < s)
-      fatal("Mark stack failure.\n");
+      Pike_fatal("Mark stack failure.\n");
 
     s=*m;
   }
 
   if(s > &(Pike_interpreter.evaluator_stack[Pike_stack_size]))
-    fatal("Mark stack exceeds svalue stack\n");
+    Pike_fatal("Mark stack exceeds svalue stack\n");
 
   for(f=Pike_fp;f;f=f->next)
   {
@@ -1776,10 +1776,10 @@ void slow_check_stack(void)
     {
       if(f->locals < Pike_interpreter.evaluator_stack ||
 	f->locals > &(Pike_interpreter.evaluator_stack[Pike_stack_size]))
-      fatal("Local variable pointer points to Finsp�ng.\n");
+      Pike_fatal("Local variable pointer points to Finsp�ng.\n");
 
       if(f->args < 0 || f->args > Pike_stack_size)
-	fatal("FEL FEL FEL! HELP!! (corrupted pike_frame)\n");
+	Pike_fatal("FEL FEL FEL! HELP!! (corrupted pike_frame)\n");
     }
   }
 }
diff --git a/src/interpret.h b/src/interpret.h
index 3b6fe70c16deaefc15170073aebad0616be1373c..2193b908594472ab58ed842c70fa76a9c89e3c4e 100644
--- a/src/interpret.h
+++ b/src/interpret.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: interpret.h,v 1.109 2002/05/31 22:41:24 nilsson Exp $
+ * $Id: interpret.h,v 1.110 2002/08/15 14:49:21 marcus Exp $
  */
 #ifndef INTERPRET_H
 #define INTERPRET_H
@@ -109,8 +109,8 @@ extern struct op_2_f {
 
 #ifdef PIKE_DEBUG
 PMOD_EXPORT extern const char msg_stack_error[];
-#define debug_check_stack() do{if(Pike_sp<Pike_interpreter.evaluator_stack)fatal(msg_stack_error);}while(0)
-#define check__positive(X,Y) if((X)<0) fatal Y
+#define debug_check_stack() do{if(Pike_sp<Pike_interpreter.evaluator_stack)Pike_fatal(msg_stack_error);}while(0)
+#define check__positive(X,Y) if((X)<0) Pike_fatal Y
 #include "pike_error.h"
 #else
 #define check__positive(X,Y)
@@ -155,7 +155,7 @@ PMOD_EXPORT extern const char Pike_check_c_stack_errmsg[];
       ((char *)&x_) + STACK_DIRECTION * (X) - Pike_interpreter.stack_top ; \
     x_*=STACK_DIRECTION;						\
     if(x_>0) {								\
-      ((void (*)(const char*, ...))fatal)(Pike_check_c_stack_errmsg);	\
+      ((void (*)(const char*, ...))Pike_fatal)(Pike_check_c_stack_errmsg);	\
     }									\
   }while(0)
 
@@ -251,7 +251,7 @@ PMOD_EXPORT extern const char msg_pop_neg[];
   {									\
     really_free_pike_frame(Pike_fp);						\
   }else{								\
-    DO_IF_DEBUG(if( Pike_fp->locals + Pike_fp->num_locals > Pike_sp || Pike_sp < Pike_fp->expendible) fatal("Stack failure in POP_PIKE_FRAME %p+%d=%p %p %p!\n",Pike_fp->locals,Pike_fp->num_locals,Pike_fp->locals+Pike_fp->num_locals,Pike_sp,Pike_fp->expendible));                      \
+    DO_IF_DEBUG(if( Pike_fp->locals + Pike_fp->num_locals > Pike_sp || Pike_sp < Pike_fp->expendible) Pike_fatal("Stack failure in POP_PIKE_FRAME %p+%d=%p %p %p!\n",Pike_fp->locals,Pike_fp->num_locals,Pike_fp->locals+Pike_fp->num_locals,Pike_sp,Pike_fp->expendible));                      \
     debug_malloc_touch(Pike_fp); \
     if(Pike_fp->num_locals)							\
     {									\
diff --git a/src/interpret_functions.h b/src/interpret_functions.h
index 9ae086da8d669be6d7cf679ea485a276f5a48c03..c3d23e9817199f10839ded96fc73a44390c362a2 100644
--- a/src/interpret_functions.h
+++ b/src/interpret_functions.h
@@ -1,5 +1,5 @@
 /*
- * $Id: interpret_functions.h,v 1.104 2002/05/15 09:11:21 grubba Exp $
+ * $Id: interpret_functions.h,v 1.105 2002/08/15 14:49:21 marcus Exp $
  *
  * Opcode definitions for the interpreter.
  */
@@ -289,7 +289,7 @@ OPCODE2(F_TRAMPOLINE, "trampoline", 0, {
   while(arg2--) {
     DO_IF_DEBUG({
       if (!f->scope) {
-	fatal("F_TRAMPOLINE %d, %d: Missing %d levels of scope!\n", 
+	Pike_fatal("F_TRAMPOLINE %d, %d: Missing %d levels of scope!\n", 
 	      arg1, arg2_, arg2+1);
       }
     });
@@ -966,7 +966,7 @@ OPCODE0_TAIL(F_CLEANUP_SYNCH_MARK, "cleanup synch mark", 0, {
   OPCODE0(F_POP_SYNCH_MARK, "pop synch mark", 0, {
     if (d_flag) {
       if (Pike_mark_sp <= Pike_interpreter.mark_stack) {
-	fatal("Mark stack out of synch - 0x%08x <= 0x%08x.\n",
+	Pike_fatal("Mark stack out of synch - 0x%08x <= 0x%08x.\n",
 	      DO_NOT_WARN((unsigned long)Pike_mark_sp),
 	      DO_NOT_WARN((unsigned long)Pike_interpreter.mark_stack));
       } else if (*--Pike_mark_sp != Pike_sp) {
@@ -975,7 +975,7 @@ OPCODE0_TAIL(F_CLEANUP_SYNCH_MARK, "cleanup synch mark", 0, {
 	if (Pike_sp - *Pike_mark_sp > 0) /* not always same as Pike_sp > *Pike_mark_sp */
 	/* Some attempt to recover, just to be able to report the backtrace. */
 	  pop_n_elems(Pike_sp - *Pike_mark_sp);
-	fatal("Stack out of synch - should be %ld, is %ld.\n",
+	Pike_fatal("Stack out of synch - should be %ld, is %ld.\n",
 	      DO_NOT_WARN((long)should), DO_NOT_WARN((long)is));
       }
     }
@@ -1652,7 +1652,7 @@ OPCODE0(F_SOFT_CAST, "soft cast", 0, {
   /* Stack: type_string, value */
   DO_IF_DEBUG({
     if (Pike_sp[-2].type != T_TYPE) {
-      fatal("Argument 1 to soft_cast isn't a type!\n");
+      Pike_fatal("Argument 1 to soft_cast isn't a type!\n");
     }
   });
   if (runtime_options & RUNTIME_CHECK_TYPES) {
@@ -2022,18 +2022,18 @@ OPCODE1(F_CALL_OTHER_AND_RETURN,"call other & return", 0, {
   if(Pike_sp != expected_stack + !s->u.efun->may_return_void)		 \
   {									 \
     if(Pike_sp < expected_stack)					 \
-      fatal("Function popped too many arguments: %s\n",			 \
+      Pike_fatal("Function popped too many arguments: %s\n",			 \
 	    s->u.efun->name->str);					 \
     if(Pike_sp>expected_stack+1)					 \
-      fatal("Function left %d droppings on stack: %s\n",		 \
+      Pike_fatal("Function left %d droppings on stack: %s\n",		 \
            Pike_sp-(expected_stack+1),					 \
 	    s->u.efun->name->str);					 \
     if(Pike_sp == expected_stack && !s->u.efun->may_return_void)	 \
-      fatal("Non-void function returned without return value "		 \
+      Pike_fatal("Non-void function returned without return value "		 \
 	    "on stack: %s %d\n",					 \
 	    s->u.efun->name->str,s->u.efun->may_return_void);		 \
     if(Pike_sp==expected_stack+1 && s->u.efun->may_return_void)		 \
-      fatal("Void function returned with a value on the stack: %s %d\n", \
+      Pike_fatal("Void function returned with a value on the stack: %s %d\n", \
 	    s->u.efun->name->str, s->u.efun->may_return_void);		 \
   }									 \
   if(t_flag>1 && Pike_sp>expected_stack) trace_return_value();		 \
@@ -2188,7 +2188,7 @@ OPCODE0_JUMP(F_TAIL_RECUR, "tail recursion", 0, {
 
   DO_IF_DEBUG({
     if(args != EXTRACT_UCHAR(addr-1))
-      fatal("Wrong number of arguments in F_TAIL_RECUR %d != %d\n",
+      Pike_fatal("Wrong number of arguments in F_TAIL_RECUR %d != %d\n",
 	    args, EXTRACT_UCHAR(addr-1));
   });
 
@@ -2196,7 +2196,7 @@ OPCODE0_JUMP(F_TAIL_RECUR, "tail recursion", 0, {
   {
     DO_IF_DEBUG({
       if (Pike_sp < Pike_fp->locals + args)
-	fatal("Pike_sp (%p) < Pike_fp->locals (%p) + args (%d)\n",
+	Pike_fatal("Pike_sp (%p) < Pike_fp->locals (%p) + args (%d)\n",
 	      Pike_sp, Pike_fp->locals, args);
     });
     assign_svalues(Pike_fp->locals, Pike_sp-args, args, BIT_MIXED);
@@ -2207,7 +2207,7 @@ OPCODE0_JUMP(F_TAIL_RECUR, "tail recursion", 0, {
 
   DO_IF_DEBUG({
     if(Pike_sp != Pike_fp->locals + Pike_fp->num_locals)
-      fatal("Sp whacked!\n");
+      Pike_fatal("Sp whacked!\n");
   });
 
   DO_JUMP_TO(addr);
@@ -2230,7 +2230,7 @@ OPCODE1(F_THIS_OBJECT, "this_object", 0, {
 	Pike_error ("Cannot get the parent object of a destructed object.\n");
       DO_IF_DEBUG (
 	if (!(p->flags & PROGRAM_USES_PARENT))
-	  fatal ("optimize_this_object failed to set up parent pointers.\n");
+	  Pike_fatal ("optimize_this_object failed to set up parent pointers.\n");
       );
       o = PARENT_INFO(o)->parent;
     }
diff --git a/src/interpreter.h b/src/interpreter.h
index 38764014904e4b83f1594c4e5b97d11c3a07f1f0..10e14a323e2da69c5fe01542caaece0875aae9f9 100644
--- a/src/interpreter.h
+++ b/src/interpreter.h
@@ -132,7 +132,7 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
     if (instr) 
       ADD_RUNNED(instr);
     else
-      fatal("NULL Instruction!\n");
+      Pike_fatal("NULL Instruction!\n");
 #else /* !HAVE_COMPUTED_GOTO */
     if(instr + F_OFFSET < F_MAX_OPCODE) 
       ADD_RUNNED(instr + F_OFFSET);
@@ -160,10 +160,10 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
       CHECK_INTERPRETER_LOCK();
       if(OBJ2THREAD(Pike_interpreter.thread_id)->state.thread_id !=
 	 Pike_interpreter.thread_id)
-	fatal("Arglebargle glop glyf, thread swap problem!\n");
+	Pike_fatal("Arglebargle glop glyf, thread swap problem!\n");
 
       if(d_flag>1 && thread_for_id(th_self()) != Pike_interpreter.thread_id)
-        fatal("thread_for_id() (or Pike_interpreter.thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id);
+        Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id);
 #endif
 
       Pike_sp[0].type=99; /* an invalid type */
@@ -173,7 +173,7 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
       
       if(Pike_sp<Pike_interpreter.evaluator_stack ||
 	 Pike_mark_sp < Pike_interpreter.mark_stack || Pike_fp->locals>Pike_sp)
-	fatal("Stack error (generic) sp=%p/%p mark_sp=%p/%p locals=%p.\n",
+	Pike_fatal("Stack error (generic) sp=%p/%p mark_sp=%p/%p locals=%p.\n",
 	      Pike_sp,
 	      Pike_interpreter.evaluator_stack,
 	      Pike_mark_sp,
@@ -181,27 +181,27 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
 	      Pike_fp->locals);
       
       if(Pike_mark_sp > Pike_interpreter.mark_stack+Pike_stack_size)
-	fatal("Mark Stack error (overflow).\n");
+	Pike_fatal("Mark Stack error (overflow).\n");
 
 
       if(Pike_mark_sp < Pike_interpreter.mark_stack)
-	fatal("Mark Stack error (underflow).\n");
+	Pike_fatal("Mark Stack error (underflow).\n");
 
       if(Pike_sp > Pike_interpreter.evaluator_stack+Pike_stack_size)
-	fatal("stack error (overflow).\n");
+	Pike_fatal("stack error (overflow).\n");
       
       if(/* Pike_fp->fun>=0 && */ Pike_fp->current_object->prog &&
 	 Pike_fp->locals+Pike_fp->num_locals > Pike_sp)
-	fatal("Stack error (stupid!).\n");
+	Pike_fatal("Stack error (stupid!).\n");
 
       if(Pike_interpreter.recoveries &&
 	 (Pike_sp-Pike_interpreter.evaluator_stack <
 	  Pike_interpreter.recoveries->stack_pointer))
-	fatal("Stack error (underflow).\n");
+	Pike_fatal("Stack error (underflow).\n");
 
       if(Pike_mark_sp > Pike_interpreter.mark_stack &&
 	 Pike_mark_sp[-1] > Pike_sp)
-	fatal("Stack error (underflow?)\n");
+	Pike_fatal("Stack error (underflow?)\n");
       
       if(d_flag > 9) do_debug();
 
@@ -313,7 +313,7 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
 
 #ifndef HAVE_COMPUTED_GOTO      
     default:
-      fatal("Strange instruction %ld\n",(long)instr);
+      Pike_fatal("Strange instruction %ld\n",(long)instr);
     }
 #endif /* !HAVE_COMPUTED_GOTO */
   }
@@ -410,7 +410,7 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
 
 #ifdef PIKE_DEBUG
     if (sizeof(table) != (F_MAX_OPCODE-F_OFFSET)*sizeof(void *))
-      fatal("opcode_to_label out of sync: 0x%08lx != 0x%08lx\n",
+      Pike_fatal("opcode_to_label out of sync: 0x%08lx != 0x%08lx\n",
 	    DO_NOT_WARN((long)sizeof(table)),
 	    DO_NOT_WARN((long)((F_MAX_OPCODE-F_OFFSET)*sizeof(void *))));
 #endif /* PIKE_DEBUG */
diff --git a/src/iterators.cmod b/src/iterators.cmod
index aa2bff8154be78d82618e7b4030e4ec101ed35f5..2d7b45286c1c3298c30f6264dff4a572acd0640a 100644
--- a/src/iterators.cmod
+++ b/src/iterators.cmod
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: iterators.cmod,v 1.25 2002/07/10 23:07:47 nilsson Exp $");
+RCSID("$Id: iterators.cmod,v 1.26 2002/08/15 14:49:22 marcus Exp $");
 #include "main.h"
 #include "object.h"
 #include "mapping.h"
@@ -401,7 +401,7 @@ PIKECLASS multiset_iterator
 	THIS->l->msd->noval_refs--;
 	sub_ref (THIS->l->msd);
 #ifdef PIKE_DEBUG
-	if (!THIS->l->msd->refs) fatal ("msd ran out of refs unexpectedly.\n");
+	if (!THIS->l->msd->refs) Pike_fatal ("msd ran out of refs unexpectedly.\n");
 #endif
 	THIS->lock_index = 0;
       }
@@ -434,7 +434,7 @@ PIKECLASS multiset_iterator
 	  THIS->l->msd->noval_refs--;
 	  sub_ref (THIS->l->msd);
 #ifdef PIKE_DEBUG
-	  if (!THIS->l->msd->refs) fatal ("msd ran out of refs unexpectedly.\n");
+	  if (!THIS->l->msd->refs) Pike_fatal ("msd ran out of refs unexpectedly.\n");
 #endif
 	}
 	free_multiset (THIS->l);
@@ -1045,7 +1045,7 @@ PIKECLASS string_split_iterator
 	NEW_SKIP_CASE(1, ssi->flags);
 	NEW_SKIP_CASE(2, ssi->flags);
       default:
-	fatal("Unsupported size shift!\n");
+	Pike_fatal("Unsupported size shift!\n");
       }
     scan_more:
       switch(ssi->buffer->size_shift)
@@ -1054,7 +1054,7 @@ PIKECLASS string_split_iterator
 	NEW_SCAN_MORE_CASE(1);
 	NEW_SCAN_MORE_CASE(2);
       default:
-	fatal("Unsupported size shift!\n");
+	Pike_fatal("Unsupported size shift!\n");
       }
     }
 
@@ -1164,7 +1164,7 @@ PIKECLASS string_split_iterator
 	      SIMPLE_SKIP_CASE(THIS, 1, off);
 	      SIMPLE_SKIP_CASE(THIS, 2, off);
 	    default:
-	      fatal("Unsupported size shift!\n");
+	      Pike_fatal("Unsupported size shift!\n");
 	    }
 	  } else {
 	    switch(THIS->buffer->size_shift) {
@@ -1172,7 +1172,7 @@ PIKECLASS string_split_iterator
 	      COMPLEX_SKIP_CASE(THIS, 1, off);
 	      COMPLEX_SKIP_CASE(THIS, 2, off);
 	    default:
-	      fatal("Unsupported size shift!\n");
+	      Pike_fatal("Unsupported size shift!\n");
 	    }	  
 	  }
 	  if (off >= THIS->buffer->len) {
@@ -1186,7 +1186,7 @@ PIKECLASS string_split_iterator
 	    SIMPLE_SCAN_CASE(THIS, 1, off);
 	    SIMPLE_SCAN_CASE(THIS, 2, off);
 	  default:
-	    fatal("Unsupported size shift!\n");
+	    Pike_fatal("Unsupported size shift!\n");
 	  }
 	} else {
 	  switch(THIS->buffer->size_shift) {
@@ -1194,7 +1194,7 @@ PIKECLASS string_split_iterator
 	    COMPLEX_SCAN_CASE(THIS, 1, off);
 	    COMPLEX_SCAN_CASE(THIS, 2, off);
 	  default:
-	    fatal("Unsupported size shift!\n");
+	    Pike_fatal("Unsupported size shift!\n");
 	  }
 	}
       }
diff --git a/src/language.yacc b/src/language.yacc
index 9ad367d0b721437243cb29dd48099e3681c01bb4..9d96955d0635a049d13ace8eea839a90ecac0da5 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -113,7 +113,7 @@
 /* This is the grammar definition of Pike. */
 
 #include "global.h"
-RCSID("$Id: language.yacc,v 1.288 2002/06/25 14:26:40 grubba Exp $");
+RCSID("$Id: language.yacc,v 1.289 2002/08/15 14:49:22 marcus Exp $");
 #ifdef HAVE_MEMORY_H
 #include <memory.h>
 #endif
@@ -881,14 +881,14 @@ def: modifiers type_or_error optional_stars TOK_IDENTIFIER push_compiler_frame0
       if(Pike_interpreter.recoveries &&
 	 ((Pike_sp - Pike_interpreter.evaluator_stack) <
 	  Pike_interpreter.recoveries->stack_pointer))
-	fatal("Stack error (underflow)\n");
+	Pike_fatal("Stack error (underflow)\n");
 
       if((Pike_compiler->compiler_pass == 1) &&
 	 (f != Pike_compiler->compiler_frame->current_function_number)) {
 	fprintf(stderr, "define_function()/do_opt_code() failed for symbol %s\n",
 		$4->u.sval.u.string->str);
 	dump_program_desc(Pike_compiler->new_program);
-	fatal("define_function screwed up! %d != %d\n",
+	Pike_fatal("define_function screwed up! %d != %d\n",
 	      f, Pike_compiler->compiler_frame->current_function_number);
       }
 #endif
@@ -1165,7 +1165,7 @@ simple_type: type4
     $$ = mktypenode(s);
 #ifdef PIKE_DEBUG
     if ($$->u.sval.u.type != s) {
-      fatal("mktypenode(%p) created node with %p\n", s, $$->u.sval.u.type);
+      Pike_fatal("mktypenode(%p) created node with %p\n", s, $$->u.sval.u.type);
     }
 #endif /* PIKE_DEBUG */
     free_type(s);
@@ -1178,7 +1178,7 @@ simple_type2: type2
     $$ = mktypenode(s);
 #ifdef PIKE_DEBUG
     if ($$->u.sval.u.type != s) {
-      fatal("mktypenode(%p) created node with %p\n", s, $$->u.sval.u.type);
+      Pike_fatal("mktypenode(%p) created node with %p\n", s, $$->u.sval.u.type);
     }
 #endif /* PIKE_DEBUG */
     free_type(s);
@@ -1191,7 +1191,7 @@ simple_identifier_type: identifier_type
     $$ = mktypenode(s);
 #ifdef PIKE_DEBUG
     if ($$->u.sval.u.type != s) {
-      fatal("mktypenode(%p) created node with %p\n", s, $$->u.sval.u.type);
+      Pike_fatal("mktypenode(%p) created node with %p\n", s, $$->u.sval.u.type);
     }
 #endif /* PIKE_DEBUG */
     free_type(s);
@@ -1301,7 +1301,7 @@ number_or_maxint: /* Empty */
   {
 #ifdef PIKE_DEBUG
     if (($2->token != F_CONSTANT) || ($2->u.sval.type != T_INT)) {
-      fatal("Unexpected number in negative int-range.\n");
+      Pike_fatal("Unexpected number in negative int-range.\n");
     }
 #endif /* PIKE_DEBUG */
     $$ = mkintnode(-($2->u.sval.u.integer));
@@ -1318,7 +1318,7 @@ number_or_minint: /* Empty */
   {
 #ifdef PIKE_DEBUG
     if (($2->token != F_CONSTANT) || ($2->u.sval.type != T_INT)) {
-      fatal("Unexpected number in negative int-range.\n");
+      Pike_fatal("Unexpected number in negative int-range.\n");
     }
 #endif /* PIKE_DEBUG */
     $$ = mkintnode(-($2->u.sval.u.integer));
@@ -2305,11 +2305,11 @@ optional_create_arguments: /* empty */ { $$ = 0; }
 #ifdef PIKE_DEBUG
     if(Pike_interpreter.recoveries &&
        Pike_sp-Pike_interpreter.evaluator_stack < Pike_interpreter.recoveries->stack_pointer)
-      fatal("Stack error (underflow)\n");
+      Pike_fatal("Stack error (underflow)\n");
 
     if(Pike_compiler->compiler_pass == 1 &&
        f!=Pike_compiler->compiler_frame->current_function_number)
-      fatal("define_function screwed up! %d != %d\n",
+      Pike_fatal("define_function screwed up! %d != %d\n",
 	    f, Pike_compiler->compiler_frame->current_function_number);
 #endif
 
@@ -3706,7 +3706,7 @@ void yyerror(char *str)
 
 #ifdef PIKE_DEBUG
   if(Pike_interpreter.recoveries && Pike_sp-Pike_interpreter.evaluator_stack < Pike_interpreter.recoveries->stack_pointer)
-    fatal("Stack error (underflow)\n");
+    Pike_fatal("Stack error (underflow)\n");
 #endif
 
   if (Pike_compiler->num_parse_error > 10) return;
@@ -3908,7 +3908,7 @@ static void safe_inc_enum(void)
   UNSETJMP(recovery);
 #ifdef PIKE_DEBUG
   if (Pike_sp != save_sp) {
-    fatal("stack thrashed in enum.\n");
+    Pike_fatal("stack thrashed in enum.\n");
   }
 #endif /* PIKE_DEBUG */
 }
diff --git a/src/las.c b/src/las.c
index 8c7d3adcceb74cbac75e6c2e08c31032d707b008..ff8e0b4e0f7a7c4f4da3f01c43c8614076161161 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.296 2002/08/12 20:19:08 grubba Exp $");
+RCSID("$Id: las.c,v 1.297 2002/08/15 14:49:22 marcus Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -109,7 +109,7 @@ void check_tree(node *n, int depth)
 
   while(n) {
     if(n->token==USHRT_MAX)
-      fatal("Free node in tree.\n");
+      Pike_fatal("Free node in tree.\n");
 
     check_node_hash(n);
 
@@ -141,7 +141,7 @@ void check_tree(node *n, int depth)
 	      simple_describe_type(n->type);
 	      fprintf(stderr, "\n");
 
-	      fatal("Type of external node is not matching its identifier.\n");
+	      Pike_fatal("Type of external node is not matching its identifier.\n");
 	    }
 #endif
 #endif
@@ -157,7 +157,7 @@ void check_tree(node *n, int depth)
       node *q;
       for(q=n->parent;q;q=q->parent)
 	if(q->parent==n)
-	  fatal("Cyclic node structure found.\n");
+	  Pike_fatal("Cyclic node structure found.\n");
     }
 
     if(car_is_node(n))
@@ -167,7 +167,7 @@ void check_tree(node *n, int depth)
       CAR(n)->parent = n;
 #else /* !SHARED_NODES */
       if(CAR(n)->parent != n)
-	fatal("Parent is wrong.\n");
+	Pike_fatal("Parent is wrong.\n");
 #endif /* SHARED_NODES */
 
       depth++;
@@ -182,7 +182,7 @@ void check_tree(node *n, int depth)
       CDR(n)->parent = n;
 #else /* !SHARED_NODES */
       if(CDR(n)->parent != n)
-	fatal("Parent is wrong.\n");
+	Pike_fatal("Parent is wrong.\n");
 #endif /* !SHARED_NODES */
 
       depth++;
@@ -203,7 +203,7 @@ void check_tree(node *n, int depth)
       CDR(n->parent)->parent = n->parent;
 #else /* !SHARED_NODES */
       if(CDR(n->parent)->parent != n->parent)
-	fatal("Parent is wrong.\n");
+	Pike_fatal("Parent is wrong.\n");
 #endif /* !SHARED_NODES */
       n = CDR(n->parent);
       continue;
@@ -218,7 +218,7 @@ void check_tree(node *n, int depth)
     print_tree(n);
     fprintf(stderr, "orig_n:");
     print_tree(orig_n);
-    fatal("check_tree() lost track.\n");
+    Pike_fatal("check_tree() lost track.\n");
   }
   n->parent = parent;
 }
@@ -416,7 +416,7 @@ static void add_node(node *n)
         fprintf(stderr, "    %p\n", (void *)probe);
         probe = probe->next;
       }
-      fatal( "Node already added!\n" );
+      Pike_fatal( "Node already added!\n" );
     }
     probe = probe->next;
   }
@@ -628,7 +628,7 @@ void free_all_nodes(void)
 	}
 #if defined(PIKE_DEBUG)
 	if(!cumulative_parse_error)
-	  fatal("Failed to free %d nodes when compiling!\n",e2);
+	  Pike_fatal("Failed to free %d nodes when compiling!\n",e2);
 #endif
       }
 #ifndef PIKE_DEBUG
@@ -660,7 +660,7 @@ void debug_free_node(node *n)
 		DO_NOT_WARN((unsigned long)hash),
 		DO_NOT_WARN((unsigned long)n->hash));
 	print_tree(n);
-	fatal("token:%d, car:%p cdr:%p file:%s line:%d\n",
+	Pike_fatal("token:%d, car:%p cdr:%p file:%s line:%d\n",
 	      n->token, _CAR(n), _CDR(n), n->current_file->str, n->line_number);
       }
     }
@@ -684,7 +684,7 @@ void debug_free_node(node *n)
 		DO_NOT_WARN((unsigned long)hash),
 		DO_NOT_WARN((unsigned long)n->hash));
 	print_tree(n);
-	fatal("token:%d, car:%p cdr:%p file:%s line:%d\n",
+	Pike_fatal("token:%d, car:%p cdr:%p file:%s line:%d\n",
 	      n->token, _CAR(n), _CDR(n), n->current_file->str, n->line_number);
       }
     }
@@ -696,7 +696,7 @@ void debug_free_node(node *n)
 #ifdef SHARED_NODES
 #ifdef PIKE_DEBUG
     if (n->refs) {
-      fatal("Node with refs left about to be killed: %8p\n", n);
+      Pike_fatal("Node with refs left about to be killed: %8p\n", n);
     }
 #endif /* PIKE_DEBUG */
     sub_node(dmalloc_touch(node *, n));
@@ -705,7 +705,7 @@ void debug_free_node(node *n)
     switch(n->token)
     {
     case USHRT_MAX:
-      fatal("Freeing node again!\n");
+      Pike_fatal("Freeing node again!\n");
       break;
 
     case F_CONSTANT:
@@ -752,7 +752,7 @@ void debug_free_node(node *n)
 
 #if defined(SHARED_NODES) && defined(PIKE_DEBUG)
       if (dead->refs) {
-	fatal("Killed node %p still has refs: %d\n", dead, dead->refs);
+	Pike_fatal("Killed node %p still has refs: %d\n", dead, dead->refs);
       }
 #endif /* SHARED_NODES && PIKE_DEBUG */
 
@@ -772,7 +772,7 @@ void debug_free_node(node *n)
 
 #if defined(SHARED_NODES) && defined(PIKE_DEBUG)
       if (dead->refs) {
-	fatal("Killed node %p still has refs: %d\n", dead, dead->refs);
+	Pike_fatal("Killed node %p still has refs: %d\n", dead, dead->refs);
       }
 #endif /* SHARED_NODES && PIKE_DEBUG */
 
@@ -804,7 +804,7 @@ void debug_free_node(node *n)
 
 #if defined(SHARED_NODES) && defined(PIKE_DEBUG)
     if (n->refs) {
-      fatal("Killed node %p still has refs: %d\n", n, n->refs);
+      Pike_fatal("Killed node %p still has refs: %d\n", n, n->refs);
     }
 #endif /* SHARE_NODES && PIKE_DEBUG */
 
@@ -830,7 +830,7 @@ node *debug_check_node_hash(node *n)
 	    n->token);
     debug_malloc_dump_references(n,0,0,0);
     print_tree(n);
-    fatal("Bad node hash!\n");
+    Pike_fatal("Bad node hash!\n");
   }
 #endif /* PIKE_DEBUG && SHARED_NODES */
   return n;
@@ -911,23 +911,23 @@ node *debug_mknode(short token, node *a, node *b)
 #ifdef PIKE_DEBUG
     case F_CAST:
     case F_SOFT_CAST:
-      fatal("Attempt to create a cast-node with mknode()!\n");
+      Pike_fatal("Attempt to create a cast-node with mknode()!\n");
     case F_CONSTANT:
-      fatal("Attempt to create an F_CONSTANT-node with mknode()!\n");
+      Pike_fatal("Attempt to create an F_CONSTANT-node with mknode()!\n");
     case F_LOCAL:
-      fatal("Attempt to create an F_LOCAL-node with mknode()!\n");
+      Pike_fatal("Attempt to create an F_LOCAL-node with mknode()!\n");
     case F_IDENTIFIER:
-      fatal("Attempt to create an F_IDENTIFIER-node with mknode()!\n");
+      Pike_fatal("Attempt to create an F_IDENTIFIER-node with mknode()!\n");
     case F_TRAMPOLINE:
-      fatal("Attempt to create an F_TRAMPOLINE-node with mknode()!\n");
+      Pike_fatal("Attempt to create an F_TRAMPOLINE-node with mknode()!\n");
     case F_EXTERNAL:
-      fatal("Attempt to create an F_EXTERNAL-node with mknode()!\n");
+      Pike_fatal("Attempt to create an F_EXTERNAL-node with mknode()!\n");
 #endif /* PIKE_DEBUG */
   }
 
 #if defined(PIKE_DEBUG) && !defined(SHARED_NODES)
   if(b && a==b)
-    fatal("mknode: a and be are the same!\n");
+    Pike_fatal("mknode: a and be are the same!\n");
 #endif    
 
   check_tree(a,0);
@@ -1440,7 +1440,7 @@ node *debug_mkexternalnode(struct program *parent_prog, int i)
     simple_describe_type(res->type);
     printf("\n");
     
-    fatal("Type of external node is not matching it's identifier.\n");
+    Pike_fatal("Type of external node is not matching it's identifier.\n");
   }
 #endif
 #endif
@@ -1456,7 +1456,7 @@ node *debug_mkcastnode(struct pike_type *type, node *n)
 
 #ifdef PIKE_DEBUG
   if (!type) {
-    fatal("Casting to no type!\n");
+    Pike_fatal("Casting to no type!\n");
   }
 #endif /* PIKE_DEBUG */
 
@@ -1490,7 +1490,7 @@ node *debug_mksoftcastnode(struct pike_type *type, node *n)
 
 #ifdef PIKE_DEBUG
   if (!type) {
-    fatal("Soft cast to no type!\n");
+    Pike_fatal("Soft cast to no type!\n");
   }
 #endif /* PIKE_DEBUG */
 
@@ -1889,7 +1889,7 @@ node *index_node(node *n, char *node_name, struct pike_string *id)
 	    if (Pike_sp > save_sp) {
 	      pop_n_elems(Pike_sp - save_sp);
 	    } else if (Pike_sp != save_sp) {
-	      fatal("f_index() munged stack!\n");
+	      Pike_fatal("f_index() munged stack!\n");
 	    }
 	    push_undefined();
 	    thrown = throw_value;
@@ -2132,7 +2132,7 @@ node *copy_node(node *n)
     
     switch((car_is_node(n) << 1) | cdr_is_node(n))
     {
-    default: fatal("fooo?\n");
+    default: Pike_fatal("fooo?\n");
 
     case 3:
       b=mknode(n->token, copy_node(CAR(n)), copy_node(CDR(n)));
@@ -3545,7 +3545,7 @@ void fix_type_field(node *n)
 	}
       }
       /* Fewer than 2 arguments to F_RANGE. */
-      fatal("Bad number of arguments to F_RANGE.\n");
+      Pike_fatal("Bad number of arguments to F_RANGE.\n");
     }
     break;
   case F_AUTO_MAP_MARKER:
@@ -3714,7 +3714,7 @@ void fix_type_field(node *n)
 		simple_describe_type(f);
 		printf("\n");
 
-		fatal("Type of external node is not matching it's identifier.\n");
+		Pike_fatal("Type of external node is not matching it's identifier.\n");
 	      }
 #endif
 #endif
@@ -3830,7 +3830,7 @@ void fix_type_field(node *n)
 	MAKE_CONSTANT_SHARED_STRING(op_string, "`/");
 	break;
       default:
-	fatal("fix_type_field(): Unhandled token: %d\n", n->token);
+	Pike_fatal("fix_type_field(): Unhandled token: %d\n", n->token);
 	break;
       }
       if (!(op_node = find_module_identifier(op_string, 0))) {
@@ -4286,7 +4286,7 @@ static void zapp_try_optimize(node *n)
   }
 #ifdef PIKE_DEBUG
   if (n != orig_n) {
-    fatal("zzap_try_optimize() lost track of parent.\n");
+    Pike_fatal("zzap_try_optimize() lost track of parent.\n");
   }
 #endif /* PIKE_DEBUG */
   n->parent = parent;
diff --git a/src/lex.c b/src/lex.c
index 23b05b0ba67195a4925eceeb562e1acac0d28671..4c044f2d35022c1eb6d863439da1379f73e2d93b 100644
--- a/src/lex.c
+++ b/src/lex.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: lex.c,v 1.104 2002/05/31 22:41:24 nilsson Exp $");
+RCSID("$Id: lex.c,v 1.105 2002/08/15 14:49:22 marcus Exp $");
 #include "language.h"
 #include "array.h"
 #include "lex.h"
@@ -328,7 +328,7 @@ void init_lex()
     }
   }
   if(fatal_later)
-    fatal("Found %d errors in instrs.\n",fatal_later);
+    Pike_fatal("Found %d errors in instrs.\n",fatal_later);
 
 #endif
 
diff --git a/src/lexer.h b/src/lexer.h
index 4ded4ee9226c81fbd82c261b278cc9c8d9f52c6c..15ade8beabf67e26d967ae7c2f8734bcc715348b 100644
--- a/src/lexer.h
+++ b/src/lexer.h
@@ -1,5 +1,5 @@
 /*
- * $Id: lexer.h,v 1.37 2002/06/11 17:48:11 mast Exp $
+ * $Id: lexer.h,v 1.38 2002/08/15 14:49:22 marcus Exp $
  *
  * Lexical analyzer template.
  * Based on lex.c 1.62
@@ -276,7 +276,7 @@ static struct pike_string *readstring(void)
       
     default:
 #ifdef PIKE_DEBUG
-      fatal("Default case in readstring() reached. c:%d\n", c);
+      Pike_fatal("Default case in readstring() reached. c:%d\n", c);
 #endif /* PIKE_DEBUG */
       break;
     }
diff --git a/src/main.c b/src/main.c
index d540d14c383467f1abe69a37f0554fc653d9bb5c..89bf8ce51b19d04636e726bf7224be2b7ccf349d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: main.c,v 1.149 2002/06/25 14:26:41 grubba Exp $");
+RCSID("$Id: main.c,v 1.150 2002/08/15 14:49:22 marcus Exp $");
 #include "fdlib.h"
 #include "backend.h"
 #include "module.h"
@@ -251,7 +251,7 @@ int dbm_main(int argc, char **argv)
   
   node_hash.table = malloc(sizeof(node *)*32831);
   if (!node_hash.table) {
-    fatal("Out of memory!\n");
+    Pike_fatal("Out of memory!\n");
   }
   MEMSET(node_hash.table, 0, sizeof(node *)*32831);
   node_hash.size = 32831;
diff --git a/src/mapping.c b/src/mapping.c
index e5ecfe28ff66fa39a7e42e088f5d8ff132718323..5f8c234c85907ac2583a831c33ead57f1b3dd80a 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: mapping.c,v 1.148 2002/05/31 22:41:24 nilsson Exp $");
+RCSID("$Id: mapping.c,v 1.149 2002/08/15 14:49:22 marcus Exp $");
 #include "main.h"
 #include "object.h"
 #include "mapping.h"
@@ -49,7 +49,7 @@ static struct mapping *gc_mark_mapping_pos = 0;
 #define EXIT_BLOCK(m)	do{						\
 DO_IF_DEBUG(								\
   if(m->refs)								\
-    fatal("really free mapping on mapping with nonzero refs.\n");	\
+    Pike_fatal("really free mapping on mapping with nonzero refs.\n");	\
 )									\
 									\
   FREE_PROT(m);								\
@@ -94,14 +94,14 @@ BLOCK_ALLOC(mapping, 511)
       prev_ = md->hash + h_;				\
       DO_IF_DEBUG(					\
 	if (!*prev_) {					\
-	  fatal("Node to move not found!\n");		\
+	  Pike_fatal("Node to move not found!\n");		\
 	}						\
       );						\
       while (*prev_ != md->free_list) {			\
 	prev_ = &((*prev_)->next);			\
         DO_IF_DEBUG(					\
 	  if (!*prev_) {				\
-	    fatal("Node to move not found!\n");		\
+	    Pike_fatal("Node to move not found!\n");		\
 	  }						\
 	);						\
       }							\
@@ -129,10 +129,10 @@ static void check_mapping_type_fields(struct mapping *m)
     }
 
   if(val_types & ~(m->data->val_types))
-    fatal("Mapping value types out of order!\n");
+    Pike_fatal("Mapping value types out of order!\n");
 
   if(ind_types & ~(m->data->ind_types))
-    fatal("Mapping indices types out of order!\n");
+    Pike_fatal("Mapping indices types out of order!\n");
 }
 #endif
 
@@ -160,8 +160,8 @@ static void init_mapping(struct mapping *m,
   debug_malloc_touch(m);
 #ifdef PIKE_DEBUG
   if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_ZAP_WEAK)
-    fatal("Can't allocate a new mapping_data inside gc.\n");
-  if(size < 0) fatal("init_mapping with negative value.\n");
+    Pike_fatal("Can't allocate a new mapping_data inside gc.\n");
+  if(size < 0) Pike_fatal("init_mapping with negative value.\n");
 #endif
   if(size)
   {
@@ -240,7 +240,7 @@ PMOD_EXPORT void really_free_mapping_data(struct mapping_data *md)
 
 #ifdef PIKE_DEBUG
   if (md->refs) {
-    fatal("really_free_mapping_data(): md has non-zero refs: %d\n",
+    Pike_fatal("really_free_mapping_data(): md has non-zero refs: %d\n",
 	  md->refs);
   }
 #endif /* PIKE_DEBUG */
@@ -278,7 +278,7 @@ static void mapping_rehash_backwards_evil(struct mapping_data *md,
   k=md->free_list;
 #ifndef PIKE_MAPPING_KEYPAIR_LOOP
 #ifdef PIKE_DEBUG
-  if(!k) fatal("Error in rehash: not enough keypairs.\n");
+  if(!k) Pike_fatal("Error in rehash: not enough keypairs.\n");
 #endif
   md->free_list=k->next;
 #else /* PIKE_MAPPING_KEYPAIR_LOOP */
@@ -313,7 +313,7 @@ static void mapping_rehash_backwards_good(struct mapping_data *md,
   k=md->free_list;
 #ifndef PIKE_MAPPING_KEYPAIR_LOOP
 #ifdef PIKE_DEBUG
-  if(!k) fatal("Error in rehash: not enough keypairs.\n");
+  if(!k) Pike_fatal("Error in rehash: not enough keypairs.\n");
 #endif
   md->free_list=k->next;
 #else /* PIKE_MAPPING_KEYPAIR_LOOP */
@@ -353,7 +353,7 @@ static struct mapping *rehash(struct mapping *m, int new_size)
   debug_malloc_touch(md);
 #ifdef PIKE_DEBUG
   if(md->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 
   if(d_flag>1)  check_mapping(m);
 #endif
@@ -381,7 +381,7 @@ static struct mapping *rehash(struct mapping *m, int new_size)
 
 #ifdef PIKE_DEBUG
   if(m->data->size != tmp)
-    fatal("Rehash failed, size not same any more.\n");
+    Pike_fatal("Rehash failed, size not same any more.\n");
 #endif
 #ifdef MAPPING_SIZE_DEBUG
   m->debug_size = m->data->size;
@@ -410,7 +410,7 @@ struct mapping_data *copy_mapping_data(struct mapping_data *md)
 
 #ifdef PIKE_DEBUG
   if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_ZAP_WEAK)
-    fatal("Can't allocate a new mapping_data inside gc.\n");
+    Pike_fatal("Can't allocate a new mapping_data inside gc.\n");
 #endif
 
   debug_malloc_touch(md);
@@ -449,7 +449,7 @@ struct mapping_data *copy_mapping_data(struct mapping_data *md)
   {
 #ifdef PIKE_DEBUG
     if(md->refs <= 0 || md->valrefs<=0)
-      fatal("Hardlink without refs/valrefs!\n");
+      Pike_fatal("Hardlink without refs/valrefs!\n");
 #endif
     md->hardlinks--;
     md->valrefs--;
@@ -600,10 +600,10 @@ PMOD_EXPORT void mapping_fix_type_field(struct mapping *m)
 
 #ifdef PIKE_DEBUG
   if(val_types & ~(m->data->val_types))
-    fatal("Mapping value types out of order!\n");
+    Pike_fatal("Mapping value types out of order!\n");
 
   if(ind_types & ~(m->data->ind_types))
-    fatal("Mapping indices types out of order!\n");
+    Pike_fatal("Mapping indices types out of order!\n");
 #endif
   m->data->val_types = val_types;
   m->data->ind_types = ind_types;
@@ -646,7 +646,7 @@ PMOD_EXPORT void low_mapping_insert(struct mapping *m,
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   h2=hash_svalue(key);
@@ -680,7 +680,7 @@ PMOD_EXPORT void low_mapping_insert(struct mapping *m,
  mi_set_value:
 #ifdef PIKE_DEBUG
   if(m->data != md)
-    fatal("Wrong dataset in mapping_insert!\n");
+    Pike_fatal("Wrong dataset in mapping_insert!\n");
   if(d_flag>1)  check_mapping(m);
 #endif
   free_mapping_data(md);
@@ -697,7 +697,7 @@ PMOD_EXPORT void low_mapping_insert(struct mapping *m,
  mi_insert:
 #ifdef PIKE_DEBUG
   if(m->data != md)
-    fatal("Wrong dataset in mapping_insert!\n");
+    Pike_fatal("Wrong dataset in mapping_insert!\n");
   if(d_flag>1)  check_mapping(m);
 #endif
   free_mapping_data(md);
@@ -759,7 +759,7 @@ PMOD_EXPORT union anything *mapping_get_item_ptr(struct mapping *m,
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 
   if(d_flag>1)  check_mapping(m);
 
@@ -796,7 +796,7 @@ PMOD_EXPORT union anything *mapping_get_item_ptr(struct mapping *m,
  mg_set_value:
 #ifdef PIKE_DEBUG
   if(m->data != md)
-    fatal("Wrong dataset in mapping_get_item_ptr!\n");
+    Pike_fatal("Wrong dataset in mapping_get_item_ptr!\n");
   if(d_flag)
     check_mapping(m);
 #endif
@@ -814,7 +814,7 @@ PMOD_EXPORT union anything *mapping_get_item_ptr(struct mapping *m,
  mg_insert:
 #ifdef PIKE_DEBUG
   if(m->data != md)
-    fatal("Wrong dataset in mapping_get_item_ptr!\n");
+    Pike_fatal("Wrong dataset in mapping_get_item_ptr!\n");
   if(d_flag)
     check_mapping(m);
 #endif
@@ -875,7 +875,7 @@ PMOD_EXPORT void map_delete_no_free(struct mapping *m,
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
   if(d_flag>1)  check_mapping(m);
   debug_malloc_touch(m);
 #endif
@@ -907,9 +907,9 @@ PMOD_EXPORT void map_delete_no_free(struct mapping *m,
  md_remove_value:
 #ifdef PIKE_DEBUG
   if(md->refs <= 1)
-    fatal("Too few refs i mapping->data\n");
+    Pike_fatal("Too few refs i mapping->data\n");
   if(m->data != md)
-    fatal("Wrong dataset in mapping_delete!\n");
+    Pike_fatal("Wrong dataset in mapping_delete!\n");
   if(d_flag>1)  check_mapping(m);
   debug_malloc_touch(m);
 #endif
@@ -955,11 +955,11 @@ PMOD_EXPORT void check_mapping_for_destruct(struct mapping *m)
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
   if(d_flag>1)  check_mapping(m);
   debug_malloc_touch(m);
   if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE)
-    fatal("check_mapping_for_destruct called in invalid pass inside gc.\n");
+    Pike_fatal("check_mapping_for_destruct called in invalid pass inside gc.\n");
 #endif
 
   /* no is_eq -> no locking */
@@ -1029,7 +1029,7 @@ PMOD_EXPORT struct svalue *low_mapping_lookup(struct mapping *m,
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
   if(d_flag>1)  check_mapping(m);
 #endif
 
@@ -1096,7 +1096,7 @@ PMOD_EXPORT struct svalue *mapping_mapping_lookup(struct mapping *m,
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   if(!s || !s->type==T_MAPPING)
@@ -1171,7 +1171,7 @@ PMOD_EXPORT struct array *mapping_indices(struct mapping *m)
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   check_mapping_for_destruct(m);
@@ -1200,7 +1200,7 @@ PMOD_EXPORT struct array *mapping_values(struct mapping *m)
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   check_mapping_for_destruct(m);
@@ -1229,7 +1229,7 @@ PMOD_EXPORT struct array *mapping_to_array(struct mapping *m)
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   a=allocate_array(m->data->size);
@@ -1258,7 +1258,7 @@ PMOD_EXPORT void mapping_replace(struct mapping *m,struct svalue *from, struct s
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   md=m->data;
@@ -1290,7 +1290,7 @@ PMOD_EXPORT struct mapping *mkmapping(struct array *ind, struct array *val)
 
 #ifdef PIKE_DEBUG
   if(ind->size != val->size)
-    fatal("mkmapping on different sized arrays.\n");
+    Pike_fatal("mkmapping on different sized arrays.\n");
 #endif
 
   m=allocate_mapping(MAP_SLOTS(ind->size));
@@ -1329,7 +1329,7 @@ PMOD_EXPORT struct mapping *copy_mapping(struct mapping *m)
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   n=allocate_mapping(0);
@@ -1360,9 +1360,9 @@ PMOD_EXPORT struct mapping *merge_mappings(struct mapping *a, struct mapping *b,
 
 #ifdef PIKE_DEBUG
   if(a->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
   if(b->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   ai=mapping_indices(a);
@@ -1448,7 +1448,7 @@ PMOD_EXPORT struct mapping *merge_mapping_array_ordered(struct mapping *a,
 	cv=array_zip(av,b,zipper); /* b must not be used */
 	break;
      default:
-	fatal("merge_mapping_array on other than AND or SUB\n");
+	Pike_fatal("merge_mapping_array on other than AND or SUB\n");
   }
 
   UNSET_ONERROR(r2); free_array(av);
@@ -1541,7 +1541,7 @@ PMOD_EXPORT struct mapping *add_mappings(struct svalue *argp, INT32 args)
   }
 #ifdef PIKE_DEBUG
   if(!ret)
-    fatal("add_mappings is confused!\n");
+    Pike_fatal("add_mappings is confused!\n");
 #endif
   return ret;
 }
@@ -1555,9 +1555,9 @@ PMOD_EXPORT int mapping_equal_p(struct mapping *a, struct mapping *b, struct pro
 
 #ifdef PIKE_DEBUG
   if(a->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
   if(b->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   if(a==b) return 1;
@@ -1637,7 +1637,7 @@ void describe_mapping(struct mapping *m,struct processing *p,int indent)
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   if(! m->data->size)
@@ -1754,7 +1754,7 @@ node *make_node_from_mapping(struct mapping *m)
 {
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   mapping_fix_type_field(m);
@@ -1826,7 +1826,7 @@ PMOD_EXPORT struct mapping *copy_mapping_recursively(struct mapping *m,
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
   doing.next=p;
@@ -1883,7 +1883,7 @@ PMOD_EXPORT void mapping_search_no_free(struct svalue *to,
 
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
   md=m->data;
 
@@ -1964,16 +1964,16 @@ void check_mapping(struct mapping *m)
   md=m->data;
 
   if(m->refs <=0)
-    fatal("Mapping has zero refs.\n");
+    Pike_fatal("Mapping has zero refs.\n");
 
   if(!m->data)
-    fatal("Mapping has no data block.\n");
+    Pike_fatal("Mapping has no data block.\n");
 
   if (!m->data->refs)
-    fatal("Mapping data block has zero refs.\n");
+    Pike_fatal("Mapping data block has zero refs.\n");
 
   if(m->next && m->next->prev != m)
-    fatal("Mapping ->next->prev != mapping.\n");
+    Pike_fatal("Mapping ->next->prev != mapping.\n");
 
 #ifdef MAPPING_SIZE_DEBUG
   if(m->debug_size != md->size)
@@ -1988,51 +1988,51 @@ void check_mapping(struct mapping *m)
     describe(m);
     fprintf(stderr,"--MAPPING ZAPPING (%d!=%d), mapping data:\n",m->debug_size,md->size);
     describe(md);
-    fatal("Mapping zapping detected (%d != %d)!\n",m->debug_size,md->size);
+    Pike_fatal("Mapping zapping detected (%d != %d)!\n",m->debug_size,md->size);
   }
 #endif
 
   if(m->prev)
   {
     if(m->prev->next != m)
-      fatal("Mapping ->prev->next != mapping.\n");
+      Pike_fatal("Mapping ->prev->next != mapping.\n");
   }else{
     if(first_mapping != m)
-      fatal("Mapping ->prev == 0 but first_mapping != mapping.\n");
+      Pike_fatal("Mapping ->prev == 0 but first_mapping != mapping.\n");
   }
 
   if(md->valrefs <0)
-    fatal("md->valrefs  < 0\n");
+    Pike_fatal("md->valrefs  < 0\n");
 
   if(md->hardlinks <0)
-    fatal("md->valrefs  < 0\n");
+    Pike_fatal("md->valrefs  < 0\n");
 
   if(md->refs < md->valrefs+1)
-    fatal("md->refs < md->valrefs+1\n");
+    Pike_fatal("md->refs < md->valrefs+1\n");
 
   if(md->valrefs < md->hardlinks)
-    fatal("md->refs < md->valrefs+1\n");
+    Pike_fatal("md->refs < md->valrefs+1\n");
 
   if(md->hashsize < 0)
-    fatal("Assert: I don't think he's going to make it Jim.\n");
+    Pike_fatal("Assert: I don't think he's going to make it Jim.\n");
 
   if(md->size < 0)
-    fatal("Core breach, evacuate ship!\n");
+    Pike_fatal("Core breach, evacuate ship!\n");
 
   if(md->num_keypairs < 0)
-    fatal("Starboard necell on fire!\n");
+    Pike_fatal("Starboard necell on fire!\n");
 
   if(md->size > md->num_keypairs)
-    fatal("Pretty mean hashtable there buster!\n");
+    Pike_fatal("Pretty mean hashtable there buster!\n");
 
   if(md->hashsize > md->num_keypairs)
-    fatal("Pretty mean hashtable there buster %d > %d (2)!\n",md->hashsize,md->num_keypairs);
+    Pike_fatal("Pretty mean hashtable there buster %d > %d (2)!\n",md->hashsize,md->num_keypairs);
 
   if(md->num_keypairs > (md->hashsize + 3) * AVG_LINK_LENGTH)
-    fatal("Mapping from hell detected, attempting to send it back...\n");
+    Pike_fatal("Mapping from hell detected, attempting to send it back...\n");
   
   if(md->size > 0 && (!md->ind_types || !md->val_types))
-    fatal("Mapping type fields are... wrong.\n");
+    Pike_fatal("Mapping type fields are... wrong.\n");
 
   num=0;
   NEW_MAPPING_LOOP(md)
@@ -2040,10 +2040,10 @@ void check_mapping(struct mapping *m)
       num++;
 
       if(! ( (1 << k->ind.type) & (md->ind_types) ))
-	fatal("Mapping indices type field lies.\n");
+	Pike_fatal("Mapping indices type field lies.\n");
 
       if(! ( (1 << k->val.type) & (md->val_types) ))
-	fatal("Mapping values type field lies.\n");
+	Pike_fatal("Mapping values type field lies.\n");
 
       check_svalue(& k->ind);
       check_svalue(& k->val);
@@ -2055,7 +2055,7 @@ void check_mapping(struct mapping *m)
     }
   
   if(md->size != num)
-    fatal("Shields are failing, hull integrity down to 20%%\n");
+    Pike_fatal("Shields are failing, hull integrity down to 20%%\n");
 
   in_check_mapping=0;
 }
@@ -2080,7 +2080,7 @@ void check_all_mappings(void)
   IND_TYPES = MD->ind_types;						\
   NEW_MAPPING_LOOP(MD) {						\
     if (!IS_DESTRUCTED(&k->ind) && RECURSE_FN(&k->ind, 1)) {		\
-      DO_IF_DEBUG(fatal("Didn't expect an svalue zapping now.\n"));	\
+      DO_IF_DEBUG(Pike_fatal("Didn't expect an svalue zapping now.\n"));	\
     }									\
     RECURSE_FN(&k->val, 1);						\
     VAL_TYPES |= 1 << k->val.type;					\
@@ -2157,7 +2157,7 @@ void gc_mark_mapping_as_referenced(struct mapping *m)
 {
 #ifdef PIKE_DEBUG
   if(m->data->refs <=0)
-    fatal("Zero refs in mapping->data\n");
+    Pike_fatal("Zero refs in mapping->data\n");
 #endif
   debug_malloc_touch(m);
   debug_malloc_touch(m->data);
@@ -2215,7 +2215,7 @@ void real_gc_cycle_check_mapping(struct mapping *m, int weak)
 
 #ifdef PIKE_DEBUG
     if(md->refs <=0)
-      fatal("Zero refs in mapping->data\n");
+      Pike_fatal("Zero refs in mapping->data\n");
 #endif
 
     if ((md->ind_types | md->val_types) & BIT_COMPLEX) {
@@ -2315,12 +2315,12 @@ unsigned gc_touch_all_mappings(void)
   unsigned n = 0;
   struct mapping *m;
   if (first_mapping && first_mapping->prev)
-    fatal("Error in mapping link list.\n");
+    Pike_fatal("Error in mapping link list.\n");
   for (m = first_mapping; m; m = m->next) {
     debug_gc_touch(m);
     n++;
     if (m->next && m->next->prev != m)
-      fatal("Error in mapping link list.\n");
+      Pike_fatal("Error in mapping link list.\n");
   }
   return n;
 }
@@ -2336,7 +2336,7 @@ void gc_check_all_mappings(void)
     if (((int)m->data) == 0x55555555) {
       fprintf(stderr, "** Zapped mapping in list of active mappings!\n");
       describe_something(m, T_MAPPING, 0,2,0, NULL);
-      fatal("Zapped mapping in list of active mappings!\n");
+      Pike_fatal("Zapped mapping in list of active mappings!\n");
     }
 #endif /* DEBUG_MALLOC */
 
diff --git a/src/module_support.c b/src/module_support.c
index 6ada4d447fda79c29689a78da250a555785f5b4f..59cbf3dd228ac79652d586feb32913e74f899113 100644
--- a/src/module_support.c
+++ b/src/module_support.c
@@ -11,7 +11,7 @@
 
 #define sp Pike_sp
 
-RCSID("$Id: module_support.c,v 1.45 2002/05/13 23:44:23 mast Exp $");
+RCSID("$Id: module_support.c,v 1.46 2002/08/15 14:49:22 marcus Exp $");
 
 /* Checks that args_to_check arguments are OK.
  * Returns 1 if everything worked ok, zero otherwise.
@@ -151,7 +151,7 @@ int va_get_args(struct svalue *s,
   while(*fmt)
   {
     if(*fmt != '%')
-      fatal("Error in format for get_args.\n");
+      Pike_fatal("Error in format for get_args.\n");
 
     if(ret == num_args) return ret;
 
@@ -297,7 +297,7 @@ int va_get_args(struct svalue *s,
       break;
       
     default:
-      fatal("Unknown format character in get_args.\n");
+      Pike_fatal("Unknown format character in get_args.\n");
     }
     ret++;
     s++;
diff --git a/src/modules/Gmp/mpf.cmod b/src/modules/Gmp/mpf.cmod
index 88984a0ee82c939e1ba51d8cb48c3a7bd371e7b4..9d12e136d9d6f6fb5126fcdc4fac237bb7401d7d 100644
--- a/src/modules/Gmp/mpf.cmod
+++ b/src/modules/Gmp/mpf.cmod
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: mpf.cmod,v 1.8 2002/08/13 17:03:05 grubba Exp $");
+RCSID("$Id: mpf.cmod,v 1.9 2002/08/15 14:50:25 marcus Exp $");
 #include "gmp_machine.h"
 
 #if defined(HAVE_GMP2_GMP_H) && defined(HAVE_LIBGMP2)
@@ -741,8 +741,8 @@ PIKECLASS mpf
   INIT
     {
 #ifdef PIKE_DEBUG
-      if(!fp) fatal("ZERO FP\n");
-      if(!THISMPF) fatal("ZERO THISMPF\n");
+      if(!fp) Pike_fatal("ZERO FP\n");
+      if(!THISMPF) Pike_fatal("ZERO THISMPF\n");
 #endif
       mpf_init(THISMPF);
     }
@@ -750,8 +750,8 @@ PIKECLASS mpf
   EXIT
     {
 #ifdef PIKE_DEBUG
-      if(!fp) fatal("ZERO FP\n");
-      if(!THISMPF) fatal("ZERO THISMPF\n");
+      if(!fp) Pike_fatal("ZERO FP\n");
+      if(!THISMPF) Pike_fatal("ZERO THISMPF\n");
 #endif
       mpf_clear(THISMPF);
     }
diff --git a/src/modules/Gmp/mpq.cmod b/src/modules/Gmp/mpq.cmod
index 5764751719fc43279257b77121d07530b4d194ef..8fb5d9fed59ddac7bf46f09f6cc8f8ed7265fb18 100644
--- a/src/modules/Gmp/mpq.cmod
+++ b/src/modules/Gmp/mpq.cmod
@@ -4,7 +4,7 @@
 ||| for more information.
 \*/
 #include "global.h"
-RCSID("$Id: mpq.cmod,v 1.9 2002/08/13 17:01:41 grubba Exp $");
+RCSID("$Id: mpq.cmod,v 1.10 2002/08/15 14:50:25 marcus Exp $");
 #include "gmp_machine.h"
 
 #if defined(HAVE_GMP2_GMP_H) && defined(HAVE_LIBGMP2)
@@ -842,8 +842,8 @@ PIKECLASS mpq
   INIT
     {
 #ifdef PIKE_DEBUG
-      if(!fp) fatal("ZERO FP\n");
-      if(!THISMPQ) fatal("ZERO THISMPQ\n");
+      if(!fp) Pike_fatal("ZERO FP\n");
+      if(!THISMPQ) Pike_fatal("ZERO THISMPQ\n");
 #endif
       mpq_init(THISMPQ);
     }
@@ -851,8 +851,8 @@ PIKECLASS mpq
   EXIT
     {
 #ifdef PIKE_DEBUG
-      if(!fp) fatal("ZERO FP\n");
-      if(!THISMPQ) fatal("ZERO THISMPQ\n");
+      if(!fp) Pike_fatal("ZERO FP\n");
+      if(!THISMPQ) Pike_fatal("ZERO THISMPQ\n");
 #endif
       mpq_clear(THISMPQ);
     }
diff --git a/src/modules/Gmp/mpz_glue.c b/src/modules/Gmp/mpz_glue.c
index b9639753af67d0fdf5c76d05dcecc9fa52dacc7e..3a003f5753308afc20bc1a22b0582e10f0be8024 100644
--- a/src/modules/Gmp/mpz_glue.c
+++ b/src/modules/Gmp/mpz_glue.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: mpz_glue.c,v 1.106 2002/07/09 17:04:00 grubba Exp $");
+RCSID("$Id: mpz_glue.c,v 1.107 2002/08/15 14:50:25 marcus Exp $");
 #include "gmp_machine.h"
 
 #if defined(HAVE_GMP2_GMP_H) && defined(HAVE_LIBGMP2)
@@ -415,7 +415,7 @@ struct pike_string *low_get_mpz_digits(MP_INT *mpz, int base)
       /* Zero is a special case. There are no limbs at all, but
        * the size is still 1 bit, and one digit should be produced. */
       if (len != 1)
-	fatal("mpz->low_get_mpz_digits: strange mpz state!\n");
+	Pike_fatal("mpz->low_get_mpz_digits: strange mpz state!\n");
       s->str[0] = 0;
     } else {
       mp_limb_t *src = mpz->_mp_d;
@@ -1455,7 +1455,7 @@ static void mpzmod_popcount(INT32 args)
     push_int(mpn_popcount(THIS->_mp_d, THIS->_mp_size));
     break;
   default:
-    fatal("Gmp.mpz->popcount: Unexpected sign!\n");
+    Pike_fatal("Gmp.mpz->popcount: Unexpected sign!\n");
   }
 #endif
 }
@@ -1506,8 +1506,8 @@ static void mpzmod_random(INT32 args)
 static void init_mpz_glue(struct object *o)
 {
 #ifdef PIKE_DEBUG
-  if(!fp) fatal("ZERO FP\n");
-  if(!THIS) fatal("ZERO THIS\n");
+  if(!fp) Pike_fatal("ZERO FP\n");
+  if(!THIS) Pike_fatal("ZERO THIS\n");
 #endif
   mpz_init(THIS);
 }
@@ -1515,8 +1515,8 @@ static void init_mpz_glue(struct object *o)
 static void exit_mpz_glue(struct object *o)
 {
 #ifdef PIKE_DEBUG
-  if(!fp) fatal("ZERO FP\n");
-  if(!THIS) fatal("ZERO THIS\n");
+  if(!fp) Pike_fatal("ZERO FP\n");
+  if(!THIS) Pike_fatal("ZERO THIS\n");
 #endif
   mpz_clear(THIS);
 }
diff --git a/src/modules/HTTPLoop/cache.c b/src/modules/HTTPLoop/cache.c
index 4aeb7cfa463760fb8af42a6aeeb3e6ec3dbf12ba..043cd5d2b0688a132682bbb85a74be0a8b38d881 100644
--- a/src/modules/HTTPLoop/cache.c
+++ b/src/modules/HTTPLoop/cache.c
@@ -147,11 +147,11 @@ static void really_free_cache_entry(struct cache  *c, struct cache_entry *e,
   {
     if(b!=(cache_hash(e->url, e->url_len) +
 	   cache_hash(e->host, e->host_len)))
-      fatal("Cache entry did not hash to the same spot\n");
+      Pike_fatal("Cache entry did not hash to the same spot\n");
     if(!mt_trylock( & c->mutex ))
-      fatal("Cache free_entry running unlocked\n");
+      Pike_fatal("Cache free_entry running unlocked\n");
     if(prev && prev->next != e)
-      fatal("prev->next != e\n");
+      Pike_fatal("prev->next != e\n");
   }
 #endif
   if(!prev)
@@ -172,7 +172,7 @@ void aap_free_cache_entry(struct cache *c, struct cache_entry *e,
 {
 #ifdef DEBUG
   if(e->refs<=0)
-    fatal("Freeing free cache entry\n");
+    Pike_fatal("Freeing free cache entry\n");
 #endif
   if(!--e->refs) 
     really_free_cache_entry(c,e,prev,b);
@@ -209,7 +209,7 @@ void aap_cache_insert(struct cache_entry *ce, struct cache *c)
 #ifdef DEBUG
   extern int d_flag;
   if((d_flag > 2) && !mt_trylock( & c->mutex ))
-    fatal("Cache insert running unlocked\n");
+    Pike_fatal("Cache insert running unlocked\n");
 #endif
   c->size += ce->data->len;
   if((head = aap_cache_lookup(ce->url, ce->url_len, 
@@ -249,7 +249,7 @@ struct cache_entry *aap_cache_lookup(char *s, ptrdiff_t len,
   {
     extern int d_flag;
     if((d_flag>2) && !mt_trylock( & c->mutex ))
-      fatal("Cache lookup running unlocked\n");
+      Pike_fatal("Cache lookup running unlocked\n");
   }
 #endif
   if( p ) *p = 0;
diff --git a/src/modules/HTTPLoop/requestobject.c b/src/modules/HTTPLoop/requestobject.c
index 17febfb69407a9d4a67c5720cf57d78241a37dd6..9038cc37dc46445e69a442cb50b9cccd39f245a4 100644
--- a/src/modules/HTTPLoop/requestobject.c
+++ b/src/modules/HTTPLoop/requestobject.c
@@ -1,5 +1,5 @@
 /*
- * $Id: requestobject.c,v 1.20 2002/08/13 17:04:05 grubba Exp $
+ * $Id: requestobject.c,v 1.21 2002/08/15 14:50:25 marcus Exp $
  */
 
 #include "global.h"
@@ -53,7 +53,7 @@
 #include "cache.h"
 #include "requestobject.h"
 
-/* Used when fatal() can't be. */
+/* Used when Pike_fatal() can't be. */
 #define DWERROR(X)	write(2, X, sizeof(X) - sizeof(""))
 
 /* All current implementations of sendfile(2) are broken. */
@@ -782,7 +782,7 @@ void actually_send(struct send_args *a)
 	}
 	break;
       case EFAULT:	/* Invalid address specified as arg */
-	/* NOTE: Can't use fatal(), since we're not in a valid Pike context. */
+	/* NOTE: Can't use Pike_fatal(), since we're not in a valid Pike context. */
 	DWERROR("FreeBSD-style sendfile() returned EFAULT.\n");
 	abort();
 	break;
diff --git a/src/modules/Image/colors.c b/src/modules/Image/colors.c
index 57d996acd536a2e972480de9ad7ed0366a33dc7e..0a9c5bc4a0c3860a32a8e05530406d5bdace2391 100644
--- a/src/modules/Image/colors.c
+++ b/src/modules/Image/colors.c
@@ -1,7 +1,7 @@
 /*
 **! module Image
 **! note
-**!	$Id: colors.c,v 1.60 2002/06/05 07:33:03 jhs Exp $
+**!	$Id: colors.c,v 1.61 2002/08/15 14:50:25 marcus Exp $
 **! submodule Color
 **!
 **!	This module keeps names and easy handling 
@@ -187,7 +187,7 @@
 
 #include "global.h"
 
-RCSID("$Id: colors.c,v 1.60 2002/06/05 07:33:03 jhs Exp $");
+RCSID("$Id: colors.c,v 1.61 2002/08/15 14:50:25 marcus Exp $");
 
 #include "image_machine.h"
 
@@ -307,7 +307,7 @@ static void make_colors(void)
    f_aggregate(n);
    colortable=clone_object(image_colortable_program,1);
    if (!colortable)
-      fatal("couldn't create colortable\n");
+      Pike_fatal("couldn't create colortable\n");
 
    push_int(12);
    push_int(12);
@@ -367,7 +367,7 @@ static void try_find_name(struct color_struct *this)
       make_colors();
 
    if (this->name) 
-      fatal("try_find_name called twice\n");
+      Pike_fatal("try_find_name called twice\n");
 
    if (this->rgbl.r!=COLOR_TO_COLORL(this->rgb.r) ||
        this->rgbl.g!=COLOR_TO_COLORL(this->rgb.g) ||
diff --git a/src/modules/Image/colortable.c b/src/modules/Image/colortable.c
index 4b0169458a3aeb1358ee26c72371fc44eae3cbe5..c1d91b5af18a10b6a647b6553ca9a99f1d816b0c 100644
--- a/src/modules/Image/colortable.c
+++ b/src/modules/Image/colortable.c
@@ -1,11 +1,11 @@
 #include "global.h"
 
-/* $Id: colortable.c,v 1.108 2002/05/11 00:27:03 nilsson Exp $ */
+/* $Id: colortable.c,v 1.109 2002/08/15 14:50:25 marcus Exp $ */
 
 /*
 **! module Image
 **! note
-**!	$Id: colortable.c,v 1.108 2002/05/11 00:27:03 nilsson Exp $
+**!	$Id: colortable.c,v 1.109 2002/08/15 14:50:25 marcus Exp $
 **! class Colortable
 **!
 **!	This object keeps colortable information,
@@ -21,7 +21,7 @@
 /* #define COLORTABLE_REDUCE_DEBUG */
 /* #define CUBICLE_DEBUG */
 
-RCSID("$Id: colortable.c,v 1.108 2002/05/11 00:27:03 nilsson Exp $");
+RCSID("$Id: colortable.c,v 1.109 2002/08/15 14:50:25 marcus Exp $");
 
 #include <math.h> /* fabs() */
 
@@ -3267,7 +3267,7 @@ void build_rigid(struct neo_colortable *nct)
    int rc,gc,bc;
    int di,hdi,hhdi;
 
-   if (nct->lu.rigid.index) fatal("rigid is initialized twice");
+   if (nct->lu.rigid.index) Pike_fatal("rigid is initialized twice");
 
    index=malloc(sizeof(int)*r*g*b);
    dist=malloc(sizeof(int)*r*g*b);
@@ -3716,7 +3716,7 @@ void image_colortable_index_32bit(INT32 args)
       SIMPLE_BAD_ARG_ERROR("Colortable.index",1,"non-empty image object");
 
    if (sizeof(unsigned INT32)!=4)
-      fatal("INT32 isn't 32 bits (sizeof is %ld)\n",
+      Pike_fatal("INT32 isn't 32 bits (sizeof is %ld)\n",
 	    (long)TO_UINT32(sizeof(unsigned INT32)));
 
    ps=begin_wide_shared_string(src->xsize*src->ysize,2);
@@ -4076,7 +4076,7 @@ static int* ordered_calculate_errors(int dxs,int dys)
 	 case 6: errs=errors3x2; break;
 	 case 9: errs=errors3x3; break;
 	 default:
-	   fatal("impossible case in colortable ordered dither generator.\n");
+	   Pike_fatal("impossible case in colortable ordered dither generator.\n");
 	   return NULL; /* uh<tm> (not in {x|x={1,2,3}*{1,2,3}}) */
       }
       
diff --git a/src/modules/Image/colortable_lookup.h b/src/modules/Image/colortable_lookup.h
index f360699d46c7c09260c28dc65969af81884b23b8..4c9279c7ae3dc481159d7dc0340e83c2f0a3b8d2 100644
--- a/src/modules/Image/colortable_lookup.h
+++ b/src/modules/Image/colortable_lookup.h
@@ -1,10 +1,10 @@
-/* $Id: colortable_lookup.h,v 1.17 2001/09/24 11:19:06 grubba Exp $ */
+/* $Id: colortable_lookup.h,v 1.18 2002/08/15 14:50:25 marcus Exp $ */
 /* included w/ defines in colortable.c */
 
 /*
 **! module Image
 **! note
-**!	$Id: colortable_lookup.h,v 1.17 2001/09/24 11:19:06 grubba Exp $
+**!	$Id: colortable_lookup.h,v 1.18 2002/08/15 14:50:25 marcus Exp $
 **! class colortable
 */
 
@@ -561,7 +561,7 @@ void (*NCTLU_SELECT_FUNCTION(struct neo_colortable *nct))
 	       return NCTLU_FLAT_CUBICLES_NAME;
 	 }
       default:
-	 fatal("lookup select (%s:%d) couldn't find the lookup mode\n",
+	 Pike_fatal("lookup select (%s:%d) couldn't find the lookup mode\n",
 	       __FILE__,__LINE__);
    }
    /* NOT_REACHED */
diff --git a/src/modules/Image/encodings/bmp.c b/src/modules/Image/encodings/bmp.c
index 75e0f86efccf14cbd135b500b34a945645ee43c2..c2f476acd87605f4ea9098bac3a0f0ed01db9952 100644
--- a/src/modules/Image/encodings/bmp.c
+++ b/src/modules/Image/encodings/bmp.c
@@ -1,9 +1,9 @@
-/* $Id: bmp.c,v 1.34 2002/05/11 00:12:38 nilsson Exp $ */
+/* $Id: bmp.c,v 1.35 2002/08/15 14:50:26 marcus Exp $ */
 
 /*
 **! module Image
 **! note
-**!	$Id: bmp.c,v 1.34 2002/05/11 00:12:38 nilsson Exp $
+**!	$Id: bmp.c,v 1.35 2002/08/15 14:50:26 marcus Exp $
 **! submodule BMP
 **!
 **!	This submodule keeps the BMP (Windows Bitmap)
@@ -22,7 +22,7 @@
 #include <ctype.h>
 
 #include "stralloc.h"
-RCSID("$Id: bmp.c,v 1.34 2002/05/11 00:12:38 nilsson Exp $");
+RCSID("$Id: bmp.c,v 1.35 2002/08/15 14:50:26 marcus Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "constants.h"
@@ -447,7 +447,7 @@ void img_bmp_encode(INT32 args)
 	    break;
 
 	 default:
-	    fatal("reached unknown RLE level\n");
+	    Pike_fatal("reached unknown RLE level\n");
       }
    }
    else
diff --git a/src/modules/Image/font.c b/src/modules/Image/font.c
index edea5eef9518a9a29dc62d52ecbe189d7f91febe..c018b7d0be73d2d49aa54427d90c33ffdc19bd8a 100644
--- a/src/modules/Image/font.c
+++ b/src/modules/Image/font.c
@@ -1,4 +1,4 @@
-/* $Id: font.c,v 1.71 2002/05/11 00:27:03 nilsson Exp $ */
+/* $Id: font.c,v 1.72 2002/08/15 14:50:25 marcus Exp $ */
 #include "global.h"
 
 #define SPACE_CHAR 'i'
@@ -581,7 +581,7 @@ void font_write(INT32 args)
 	 }
 	 break;
        default:
-	 fatal("Illegal shift size!\n");
+	 Pike_fatal("Illegal shift size!\n");
       }
       width_of[j]=max;
       if (max>maxwidth2) maxwidth2=max;
@@ -677,7 +677,7 @@ void font_write(INT32 args)
 	THREADS_DISALLOW();
 	break;
       default:
-	fatal("Illegal shift size!\n");
+	Pike_fatal("Illegal shift size!\n");
      }
    }
    free(width_of);
@@ -780,7 +780,7 @@ void font_text_extents(INT32 args)
 	}
 	break;
       default:
-	fatal("Illegal shift size!\n");
+	Pike_fatal("Illegal shift size!\n");
      }
      if (max>maxwidth2) maxwidth2=max;
   }
diff --git a/src/modules/Image/image_module.c b/src/modules/Image/image_module.c
index 7f273d201894216d1758ae1104fd185a553e8edd..0dcd9efed5b82e6ff90ca02f542efe5089c1a8b3 100644
--- a/src/modules/Image/image_module.c
+++ b/src/modules/Image/image_module.c
@@ -1,7 +1,7 @@
 #include "global.h"
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id: image_module.c,v 1.13 2002/05/11 00:24:25 nilsson Exp $");
+RCSID("$Id: image_module.c,v 1.14 2002/08/15 14:50:26 marcus Exp $");
 #include "pike_macros.h"
 #include "interpret.h"
 #include "program.h"
@@ -95,7 +95,7 @@ static inline long TO_LONG(ptrdiff_t x)
 #ifdef PIKE_DEBUG
 #define IMAGE_CHECK_STACK(X)	do { \
     if (save_sp != sp) { \
-      fatal("%s:%d: %ld droppings on stack! previous init: %s\n", \
+      Pike_fatal("%s:%d: %ld droppings on stack! previous init: %s\n", \
             __FILE__, __LINE__, TO_LONG(sp - save_sp), X); \
     } \
   } while(0)
diff --git a/src/modules/Image/layers.c b/src/modules/Image/layers.c
index d50e61b42ff3ebcfefea974beccd56b1fe0d2abf..8d9fda64f41076d78a4d3a13435c57d8bdc91b53 100644
--- a/src/modules/Image/layers.c
+++ b/src/modules/Image/layers.c
@@ -1,7 +1,7 @@
 /*
 **! module Image
 **! note
-**!	$Id: layers.c,v 1.78 2002/08/13 17:09:17 grubba Exp $
+**!	$Id: layers.c,v 1.79 2002/08/15 14:50:26 marcus Exp $
 **! class Layer
 **! see also: layers
 **!
@@ -196,7 +196,7 @@
 
 #include <math.h> /* floor */
 
-RCSID("$Id: layers.c,v 1.78 2002/08/13 17:09:17 grubba Exp $");
+RCSID("$Id: layers.c,v 1.79 2002/08/15 14:50:26 marcus Exp $");
 
 #include "image_machine.h"
 
@@ -717,7 +717,7 @@ static INLINE void hsv_to_rgb(double h,double s,double v,rgb_group *colorp)
       case 3: 	colorp->r = p;	colorp->g = q;	colorp->b = V;	 break;
       case 4: 	colorp->r = t;	colorp->g = p;	colorp->b = V;	 break;
       case 5: 	colorp->r = V;	colorp->g = p;	colorp->b = q;	 break;
-      default: fatal("unhandled case\n");
+      default: Pike_fatal("unhandled case\n");
    }
 #undef V
 #undef i
@@ -1137,7 +1137,7 @@ static void image_layer_mode(INT32 args)
 	 return;
       }
 
-   fatal("illegal mode: %p\n", (void *)layer_mode[i].func);
+   Pike_fatal("illegal mode: %p\n", (void *)layer_mode[i].func);
 }
 
 static void image_layer_available_modes(INT32 args)
diff --git a/src/modules/Odbc/odbc.c b/src/modules/Odbc/odbc.c
index 61ccf24155197c08896d1822bc8c640bf8f7e93f..4fc15b30d9cd5998b192876e92b43a6cbfb9926c 100644
--- a/src/modules/Odbc/odbc.c
+++ b/src/modules/Odbc/odbc.c
@@ -1,5 +1,5 @@
 /*
- * $Id: odbc.c,v 1.29 2002/05/11 00:24:25 nilsson Exp $
+ * $Id: odbc.c,v 1.30 2002/08/15 14:50:26 marcus Exp $
  *
  * Pike interface to ODBC compliant databases.
  *
@@ -16,7 +16,7 @@
 #include "config.h"
 #endif /* HAVE_CONFIG_H */
 
-RCSID("$Id: odbc.c,v 1.29 2002/05/11 00:24:25 nilsson Exp $");
+RCSID("$Id: odbc.c,v 1.30 2002/08/15 14:50:26 marcus Exp $");
 
 #include "interpret.h"
 #include "object.h"
@@ -315,7 +315,7 @@ static void f_big_query(INT32 args)
   }
 #ifdef PIKE_DEBUG
   if (sp != save_sp) {
-    fatal("Stack error in odbc->big_query().\n");
+    Pike_fatal("Stack error in odbc->big_query().\n");
   }
 #endif /* PIKE_DEBUG */
 }
@@ -375,7 +375,7 @@ static void f_list_tables(INT32 args)
   }
 #ifdef PIKE_DEBUG
   if (sp != save_sp) {
-    fatal("Stack error in odbc->list_tables().\n");
+    Pike_fatal("Stack error in odbc->list_tables().\n");
   }
 #endif /* PIKE_DEBUG */
 }
diff --git a/src/modules/Oracle/oracle.c b/src/modules/Oracle/oracle.c
index e31ace77e046c9f7aa9fb147c71806c205e2d85a..81b4b449daaeadc07a65be4d9a7e0b4e1a7d1bd7 100644
--- a/src/modules/Oracle/oracle.c
+++ b/src/modules/Oracle/oracle.c
@@ -1,5 +1,5 @@
 /*
- * $Id: oracle.c,v 1.69 2002/08/06 20:13:08 grubba Exp $
+ * $Id: oracle.c,v 1.70 2002/08/15 14:50:26 marcus Exp $
  *
  * Pike interface to Oracle databases.
  *
@@ -53,7 +53,7 @@
 
 #include <math.h>
 
-RCSID("$Id: oracle.c,v 1.69 2002/08/06 20:13:08 grubba Exp $");
+RCSID("$Id: oracle.c,v 1.70 2002/08/15 14:50:26 marcus Exp $");
 
 
 /* User-changable defines: */
@@ -251,20 +251,20 @@ void *parent_storage(int depth)
     if (o->refs == 0x55555555) {
       fprintf(stderr, "The object %p has been zapped!\n", o);
       describe(p);
-      fatal("Object zapping detected.\n");
+      Pike_fatal("Object zapping detected.\n");
     }
     if (p->refs == 0x55555555) {
       fprintf(stderr, "The program %p has been zapped!\n", p);
       describe(p);
       fprintf(stderr, "Which taken from the object %p\n", o);
       describe(o);
-      fatal("Looks like the program %p has been zapped!\n", p);
+      Pike_fatal("Looks like the program %p has been zapped!\n", p);
     }
 #endif /* DEBUG_MALLOC */
     
 #ifdef PIKE_DEBUG
     if(i < 0 || i > p->num_identifier_references)
-      fatal("Identifier out of range!\n");
+      Pike_fatal("Identifier out of range!\n");
 #endif
     
     inherit=INHERIT_FROM_INT(p, i);
@@ -277,7 +277,7 @@ void *parent_storage(int depth)
       describe(p);
       fprintf(stderr, "Which was in turn taken from the object %p\n", o);
       describe(o);
-      fatal("Looks like the program %p has been zapped!\n", p);
+      Pike_fatal("Looks like the program %p has been zapped!\n", p);
     }
 #endif /* DEBUG_MALLOC */
     
@@ -303,7 +303,7 @@ void *low_check_storage(void *storage, unsigned long magic, char *prog)
   {
     fprintf(stderr, "Wrong magic number! expected a %s\n",prog);
     fprintf(stderr, "Expected %lx, got %lx\n",magic,*((unsigned long *)storage));
-    fatal("Wrong program, expected %s!\n",prog);
+    Pike_fatal("Wrong program, expected %s!\n",prog);
   }
   return storage;
 }
@@ -1739,7 +1739,7 @@ static void f_big_typed_query_create(INT32 args)
   {
       CHECK_INTERPRETER_LOCK();
       if(d_flag>1 && thread_for_id(th_self()) != Pike_thread_id)
-        fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
+        Pike_fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
   }
 #endif
 
@@ -1788,7 +1788,7 @@ static void f_big_typed_query_create(INT32 args)
   {
       CHECK_INTERPRETER_LOCK();
       if(d_flag>1 && thread_for_id(th_self()) != Pike_thread_id)
-        fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
+        Pike_fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
   }
 #endif
 
@@ -2001,7 +2001,7 @@ static void f_big_typed_query_create(INT32 args)
   {
       CHECK_INTERPRETER_LOCK();
       if(d_flag>1 && thread_for_id(th_self()) != Pike_thread_id)
-        fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
+        Pike_fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
   }
 #endif
 
@@ -2046,7 +2046,7 @@ static void f_big_typed_query_create(INT32 args)
   {
       CHECK_INTERPRETER_LOCK();
       if(d_flag>1 && thread_for_id(th_self()) != Pike_thread_id)
-        fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
+        Pike_fatal("thread_for_id() (or Pike_thread_id) failed in interpreter.h! %p != %p\n",thread_for_id(th_self()),Pike_thread_id);
   }
 #endif
 
@@ -2188,7 +2188,7 @@ void pike_module_init(void)
   }
 
   if(oracle_program)
-    fatal("Oracle module initiated twice!\n");
+    Pike_fatal("Oracle module initiated twice!\n");
 
   MY_START_CLASS(dbcon); {
 
diff --git a/src/modules/PDF/pdf_module.c b/src/modules/PDF/pdf_module.c
index 50fcb21688826629efc96844e3a778d7bc4bf9f0..a279510fc0999dc165acdda22d6dbe8fccb63e50 100644
--- a/src/modules/PDF/pdf_module.c
+++ b/src/modules/PDF/pdf_module.c
@@ -1,7 +1,7 @@
 #include "global.h"
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id: pdf_module.c,v 1.10 2002/05/11 00:24:25 nilsson Exp $");
+RCSID("$Id: pdf_module.c,v 1.11 2002/08/15 14:50:26 marcus Exp $");
 #include "pike_macros.h"
 #include "interpret.h"
 #include "program.h"
@@ -97,7 +97,7 @@ static inline long TO_LONG(ptrdiff_t x)
 #ifdef PIKE_DEBUG
 #define PDF_CHECK_STACK(X)	do { \
     if (save_sp != sp) { \
-      fatal("%s:%d: %ld droppings on stack! previous init: %s\n", \
+      Pike_fatal("%s:%d: %ld droppings on stack! previous init: %s\n", \
             __FILE__, __LINE__, TO_LONG(sp - save_sp), X); \
     } \
   } while(0)
diff --git a/src/modules/Parser/html.c b/src/modules/Parser/html.c
index 98054dddffa998eeb4664d9d5c83fa5191175f33..49543fb4192452a2b0bea889a5f5b94bec99cb6e 100644
--- a/src/modules/Parser/html.c
+++ b/src/modules/Parser/html.c
@@ -1,4 +1,4 @@
-/* $Id: html.c,v 1.151 2002/08/13 17:18:26 grubba Exp $ */
+/* $Id: html.c,v 1.152 2002/08/15 14:50:26 marcus Exp $ */
 
 #include "global.h"
 #include "config.h"
@@ -591,7 +591,7 @@ found_start:
    CC->num_look_for_start=n;
 #ifdef PIKE_DEBUG
    if (n > NELEM (CC->look_for_start))
-     fatal ("Static size of calc_chars.look_for_start is %d but %d required.\n",
+     Pike_fatal ("Static size of calc_chars.look_for_start is %d but %d required.\n",
 	    NELEM (CC->look_for_start), n);
 #endif
 
@@ -618,13 +618,13 @@ found_start:
       CC->num_look_for_end[k]=n;
 #ifdef PIKE_DEBUG
       if (n > NELEM (CC->look_for_end[k]))
-	fatal ("Static size of calc_chars.look_for_end[k] is %d but %d required.\n",
+	Pike_fatal ("Static size of calc_chars.look_for_end[k] is %d but %d required.\n",
 	       NELEM (CC->look_for_end[k]), n);
 #endif
    }
 #ifdef PIKE_DEBUG
    if (k > NELEM (CC->look_for_end))
-     fatal ("Static size of calc_chars.look_for_end is %d but %d required.\n",
+     Pike_fatal ("Static size of calc_chars.look_for_end is %d but %d required.\n",
 	    NELEM (CC->look_for_end), k);
 #endif
 
@@ -653,7 +653,7 @@ found_start:
 #else
 #ifdef PIKE_DEBUG
    if (CC->n_arg_break_chars > NELEM (CC->arg_break_chars))
-     fatal ("Static size of calc_chars.arg_break_chars is %d but %d required.\n",
+     Pike_fatal ("Static size of calc_chars.arg_break_chars is %d but %d required.\n",
 	    NELEM (CC->arg_break_chars), CC->n_arg_break_chars);
 #endif
 #endif
@@ -1080,14 +1080,14 @@ static void html_add_quote_tag(INT32 args)
     int i;
     struct array *arr;
 #ifdef PIKE_DEBUG
-    if (val->type != T_ARRAY) fatal ("Expected array as value in mapqtag.\n");
+    if (val->type != T_ARRAY) Pike_fatal ("Expected array as value in mapqtag.\n");
 #endif
     arr = val->u.array;
 
     for (i = 0; i < arr->size; i += 3) {
       struct pike_string *curname;
 #ifdef PIKE_DEBUG
-      if (arr->item[i].type != T_STRING) fatal ("Expected string as name in mapqtag.\n");
+      if (arr->item[i].type != T_STRING) Pike_fatal ("Expected string as name in mapqtag.\n");
 #endif
       curname = dmalloc_touch (struct pike_string *, arr->item[i].u.string);
 
@@ -1320,7 +1320,7 @@ static void html_quote_tags(INT32 args)
        push_svalue (arr->item+i+1);
 #ifdef PIKE_DEBUG
        if (arr->item[i+2].type != T_STRING)
-	 fatal ("Expected string as end in mapqtag.\n");
+	 Pike_fatal ("Expected string as end in mapqtag.\n");
 #endif
        end = arr->item[i+2].u.string;
        push_string (string_slice (end, 0, end->len-1));
@@ -1354,7 +1354,7 @@ static void put_out_feed(struct parser_html_storage *this, struct svalue *v)
 
 #ifdef PIKE_DEBUG
    if (v->type != T_STRING && this->out_max_shift >= 0)
-     fatal ("Putting a non-string into output queue in non-mixed mode.\n");
+     Pike_fatal ("Putting a non-string into output queue in non-mixed mode.\n");
 #endif
 
    f = alloc_out_piece();
@@ -1417,7 +1417,7 @@ static void put_out_feed_range(struct parser_html_storage *this,
       }
 #ifdef PIKE_DEBUG
       if (!head)
-	fatal("internal error: tail not found in feed (put_out_feed_range)\n");
+	Pike_fatal("internal error: tail not found in feed (put_out_feed_range)\n");
 #endif
       /* Should never have empty strings in the feed. */
       ref_push_string(head->s);
@@ -1461,7 +1461,7 @@ static INLINE void push_feed_range(struct piece *head,
       }
 #ifdef PIKE_DEBUG
       if (!head)
-	fatal("internal error: tail not found in feed (push_feed_range)\n");
+	Pike_fatal("internal error: tail not found in feed (push_feed_range)\n");
 #endif
       ref_push_string(head->s);
       n++;
@@ -1561,7 +1561,7 @@ static INLINE void skip_piece_range(struct location *loc,
      case 2: LOOP (p_wchar2); break;
 #undef LOOP
 #ifdef PIKE_DEBUG
-     default: fatal("unknown width of string\n");
+     default: Pike_fatal("unknown width of string\n");
 #endif
    }
    loc->byteno=b;
@@ -1684,7 +1684,7 @@ static int scan_forward(struct piece *feed,
 #undef LOOP
 #ifdef PIKE_DEBUG
 		  default:
-		     fatal("unknown width of string\n");
+		     Pike_fatal("unknown width of string\n");
 #endif
 	       }
 	       if (!feed->next) break;
@@ -1724,7 +1724,7 @@ static int scan_forward(struct piece *feed,
 #undef LOOP
 #ifdef PIKE_DEBUG
 	       default:
-		  fatal("unknown width of string\n");
+		  Pike_fatal("unknown width of string\n");
 #endif
 	    }
 	    if (!feed->next) break;
@@ -1809,7 +1809,7 @@ static int scan_for_string (struct parser_html_storage *this,
     case 1: LOOP (p_wchar1); break;
     case 2: LOOP (p_wchar2); break;
 #ifdef PIKE_DEBUG
-    default: fatal ("Unknown width of string.\n");
+    default: Pike_fatal ("Unknown width of string.\n");
 #endif
   }
 
@@ -2270,7 +2270,7 @@ static int quote_tag_lookup (struct parser_html_storage *this,
 	      isprint (buf.str[0]) ? buf.str[0] : '.',
 	      isprint (buf.str[1]) ? buf.str[1] : '.', checklen));
 #ifdef PIKE_DEBUG
-      if (val->type != T_ARRAY) fatal ("Expected array as value in mapqtag.\n");
+      if (val->type != T_ARRAY) Pike_fatal ("Expected array as value in mapqtag.\n");
 #endif
       arr = val->u.array;
 
@@ -2278,7 +2278,7 @@ static int quote_tag_lookup (struct parser_html_storage *this,
 	struct pike_string *tag;
 #ifdef PIKE_DEBUG
 	if (arr->item[i].type != T_STRING)
-	  fatal ("Expected string as name in mapqtag.\n");
+	  Pike_fatal ("Expected string as name in mapqtag.\n");
 #endif
 	tag = arr->item[i].u.string;
 	dst = buf.p[checklen-1];
@@ -2306,7 +2306,7 @@ static int quote_tag_lookup (struct parser_html_storage *this,
 	  case 1: LOOP (p_wchar1); break;
 	  case 2: LOOP (p_wchar2); break;
 #ifdef PIKE_DEBUG
-	  default: fatal ("Unknown width of string.\n");
+	  default: Pike_fatal ("Unknown width of string.\n");
 #endif
 	}
 
@@ -2528,7 +2528,7 @@ static newstate data_callback (struct parser_html_storage *this,
 
 #ifdef PIKE_DEBUG
   if (this->callback__data.type == T_INT || !this->data_cb_feed)
-    fatal ("data_callback called in bogus state.\n");
+    Pike_fatal ("data_callback called in bogus state.\n");
 #endif
 
   cend = this->data_cb_feed_end->s->len;
@@ -2564,7 +2564,7 @@ static newstate data_callback (struct parser_html_storage *this,
   else {
 #ifdef PIKE_DEBUG
     if (res != STATE_DONE && res != STATE_REREAD)
-      fatal ("Unexpected state after data callback.\n");
+      Pike_fatal ("Unexpected state after data callback.\n");
 #endif
     do {
       struct piece *next = this->data_cb_feed->next;
@@ -2947,10 +2947,10 @@ static newstate do_try_feed(struct parser_html_storage *this,
 
 #ifdef PIKE_DEBUG
       if (*feed && feed[0]->s->len < st->c)
-	 fatal("len (%ld) < st->c (%ld)\n",
+	 Pike_fatal("len (%ld) < st->c (%ld)\n",
 	       TO_LONG(feed[0]->s->len), TO_LONG(st->c));
       if (*feed && cmp_feed_pos (*feed, st->c, dst, cdst) > 0)
-	fatal ("Going backwards from %p:%ld to %p:%ld.\n",
+	Pike_fatal ("Going backwards from %p:%ld to %p:%ld.\n",
 	       (void *)(*feed), TO_LONG(st->c), (void *)dst, TO_LONG(cdst));
 #endif
 
@@ -3009,7 +3009,7 @@ static newstate do_try_feed(struct parser_html_storage *this,
 
 #ifdef PIKE_DEBUG
       if (*feed != dst || st->c != cdst)
-	fatal ("Internal position confusion: feed: %p:%ld, dst: %p:%ld.\n",
+	Pike_fatal ("Internal position confusion: feed: %p:%ld, dst: %p:%ld.\n",
 	       (void *)(*feed), TO_LONG(st->c), (void *)dst, TO_LONG(cdst));
 #endif
 
@@ -3024,7 +3024,7 @@ static newstate do_try_feed(struct parser_html_storage *this,
 		*feed,st->c));
 #ifdef PIKE_DEBUG
 	 if (!st->parse_tags)
-	   fatal ("What am I doing parsing tags now?\n");
+	   Pike_fatal ("What am I doing parsing tags now?\n");
 #endif
 
 	 /* skip ws to start of tag name */
@@ -3141,7 +3141,7 @@ static newstate do_try_feed(struct parser_html_storage *this,
 	    else {
 	       /* this is the hardest part : find the corresponding end tag */
 #ifdef PIKE_DEBUG
-	       if (!tag && !cont) fatal ("You push that stone yourself!\n");
+	       if (!tag && !cont) Pike_fatal ("You push that stone yourself!\n");
 #endif
 
 	       if ((res=find_end_of_container(this,
@@ -3252,7 +3252,7 @@ static newstate do_try_feed(struct parser_html_storage *this,
       {
 #ifdef PIKE_DEBUG
 	if (ch != ENTITY_START (this))
-	  fatal ("Oups! How did I end up here? There's no entity around.\n");
+	  Pike_fatal ("Oups! How did I end up here? There's no entity around.\n");
 #endif
 	goto parse_entity;	/* same code as in tag arguments */
       }
@@ -3432,7 +3432,7 @@ static newstate do_try_feed(struct parser_html_storage *this,
       case CTX_SPLICE_ARG:
 #ifdef PIKE_DEBUG
 	if (this->data_cb_feed)
-	  fatal ("Shouldn't have data cb feed in splice arg context.\n");
+	  Pike_fatal ("Shouldn't have data cb feed in splice arg context.\n");
 #endif
 
 	if (!*feed) {
@@ -3472,7 +3472,7 @@ static newstate do_try_feed(struct parser_html_storage *this,
 
 #ifdef PIKE_DEBUG
 	if (this->data_cb_feed)
-	  fatal ("Shouldn't have data cb feed in tag arg context.\n");
+	  Pike_fatal ("Shouldn't have data cb feed in tag arg context.\n");
 #endif
 
 	if (!*feed) {
@@ -3519,9 +3519,9 @@ static newstate do_try_feed(struct parser_html_storage *this,
 	       *feed,st->c));
 
 #ifdef PIKE_DEBUG
-	if (!scan_entity) fatal ("Shouldn't parse entities now.\n");
+	if (!scan_entity) Pike_fatal ("Shouldn't parse entities now.\n");
 	if (*feed != dst || st->c != cdst)
-	  fatal ("Internal position confusion: feed: %p:%ld, dst: %p:%ld\n",
+	  Pike_fatal ("Internal position confusion: feed: %p:%ld, dst: %p:%ld\n",
 		 (void *)(*feed), TO_LONG(st->c), (void *)dst, TO_LONG(cdst));
 #endif
 	/* just search for end of entity */
@@ -3743,7 +3743,7 @@ static void try_feed(int finished)
 
 #ifdef PIKE_DEBUG
 	    if (THIS->stack->local_feed)
-	       fatal("internal wierdness in Parser.HTML: feed left\n");
+	       Pike_fatal("internal wierdness in Parser.HTML: feed left\n");
 #endif
 
 	    really_free_feed_stack (THIS->stack);
@@ -3940,7 +3940,7 @@ static void html_read(INT32 args)
       THIS->out_length -= n;
 #ifdef PIKE_DEBUG
       if (!THIS->out_length != !THIS->out)
-	fatal ("Inconsistency in output queue length.\n");
+	Pike_fatal ("Inconsistency in output queue length.\n");
 #endif
    }
    else
@@ -3954,7 +3954,7 @@ static void html_read(INT32 args)
 	 struct out_piece *z;
 #ifdef PIKE_DEBUG
 	 if (THIS->out->v.type != T_STRING)
-	    fatal ("Got nonstring in parsed data\n");
+	    Pike_fatal ("Got nonstring in parsed data\n");
 #endif
 	 if (THIS->out->v.u.string->len>n)
 	 {
@@ -3996,10 +3996,10 @@ static void html_read(INT32 args)
        struct out_piece *z;
        for (z = THIS->out; z; z = z->next)
 	 if (z->v.type != T_STRING || z->v.u.string->len)
-	   fatal ("Inconsistency in output queue.\n");
+	   Pike_fatal ("Inconsistency in output queue.\n");
      }
      else if (!THIS->out)
-       fatal ("Inconsistency in output queue length.\n");
+       Pike_fatal ("Inconsistency in output queue length.\n");
 #endif
    }
 }
@@ -4192,7 +4192,7 @@ static void tag_args(struct parser_html_storage *this,struct piece *feed,ptrdiff
 new_arg:
 #ifdef PIKE_DEBUG
       if (prev_s && cmp_feed_pos (prev_s, prev_c, s1, c1) >= 0)
-	fatal ("Not going forward in tag args loop (from %p:%ld to %p:%ld).\n",
+	Pike_fatal ("Not going forward in tag args loop (from %p:%ld to %p:%ld).\n",
 	       (void *)prev_s, PTRDIFF_T_TO_LONG(prev_c),
 	       (void *)s1, PTRDIFF_T_TO_LONG(c1));
       prev_s = s1, prev_c = c1;
diff --git a/src/modules/Parser/parser.c b/src/modules/Parser/parser.c
index 3ebb7eb2c10828c2645222908a82fcaf44e55db1..615b1d3d9fcfec446ce9ee754e817dde4bae2421 100644
--- a/src/modules/Parser/parser.c
+++ b/src/modules/Parser/parser.c
@@ -1,7 +1,7 @@
 #include "global.h"
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id: parser.c,v 1.13 2002/05/11 00:24:25 nilsson Exp $");
+RCSID("$Id: parser.c,v 1.14 2002/08/15 14:50:26 marcus Exp $");
 #include "pike_macros.h"
 #include "interpret.h"
 #include "program.h"
@@ -86,7 +86,7 @@ static struct
 #ifdef PIKE_DEBUG
 #define PARSER_CHECK_STACK(X)	do { \
     if (save_sp != sp) { \
-      fatal("%s:%d: %ld droppings on stack! previous init: %s\n", \
+      Pike_fatal("%s:%d: %ld droppings on stack! previous init: %s\n", \
             __FILE__, __LINE__, \
             PTRDIFF_T_TO_LONG(sp - save_sp), X); \
     } \
diff --git a/src/modules/Perl/perlmod.c b/src/modules/Perl/perlmod.c
index 2d063d57b708c80306009eaa0d5c742e461040d4..8d050924f1b91efbb9c2aef5b650c7fab8c4151c 100644
--- a/src/modules/Perl/perlmod.c
+++ b/src/modules/Perl/perlmod.c
@@ -1,4 +1,4 @@
-/* $Id: perlmod.c,v 1.24 2001/12/22 00:27:48 nilsson Exp $ */
+/* $Id: perlmod.c,v 1.25 2002/08/15 14:50:27 marcus Exp $ */
 
 #define NO_PIKE_SHORTHAND
 
@@ -192,7 +192,7 @@ static int _perl_parse(struct perlmod_storage *ps,
 
 #ifdef PIKE_DEBUG
     if(env_blockp - ps->env_block > env_block_size)
-      fatal("Arglebargle glop-glyf.\n");
+      Pike_fatal("Arglebargle glop-glyf.\n");
 #endif
 
     ps->env[d]=0;
diff --git a/src/modules/Pipe/pipe.c b/src/modules/Pipe/pipe.c
index 5d86bb040ce029001d3c6ed4374884912edf0cc4..ab2478db5087d3771350f7646f38765a4a86cdd9 100644
--- a/src/modules/Pipe/pipe.c
+++ b/src/modules/Pipe/pipe.c
@@ -30,7 +30,7 @@
 
 #include <fcntl.h>
 
-RCSID("$Id: pipe.c,v 1.48 2002/05/11 00:27:03 nilsson Exp $");
+RCSID("$Id: pipe.c,v 1.49 2002/08/15 14:50:27 marcus Exp $");
 
 #include "threads.h"
 #include "stralloc.h"
@@ -378,7 +378,7 @@ static int read_some_data(void)
   struct input * i = this->firstinput;
 
   if (!i || i->type != I_BLOCKING_OBJ) {
-    fatal("PIPE: read_some_data(): Bad input type!\n");
+    Pike_fatal("PIPE: read_some_data(): Bad input type!\n");
     return -1;
   }
   push_int(8192);
diff --git a/src/modules/_Charset/charsetmod.c b/src/modules/_Charset/charsetmod.c
index 8b785ad286694991377de17098d2d3a39a6dc7b2..348de1a3e9d7fa043af2ed49760f25d3416ef6e0 100644
--- a/src/modules/_Charset/charsetmod.c
+++ b/src/modules/_Charset/charsetmod.c
@@ -3,7 +3,7 @@
 #endif /* HAVE_CONFIG_H */
 
 #include "../../global.h"
-RCSID("$Id: charsetmod.c,v 1.34 2002/08/13 17:20:27 grubba Exp $");
+RCSID("$Id: charsetmod.c,v 1.35 2002/08/15 14:50:27 marcus Exp $");
 #include "program.h"
 #include "interpret.h"
 #include "stralloc.h"
@@ -697,7 +697,7 @@ static void f_rfc1345(INT32 args)
 	case MODE_9696: lowtrans=32; lo=lo2=160; hi=hi2=255; break;
 	case MODE_BIG5: lowtrans=32; lo=0xa1; lo2=0x40; hi=0xf9; hi2=0xfe; break;
 	default:
-	  fatal("Internal error in rfc1345\n");
+	  Pike_fatal("Internal error in rfc1345\n");
 	}
 	
 	if(hi2) {
@@ -741,7 +741,7 @@ static void f_rfc1345(INT32 args)
       case MODE_9696: p = std_9696_program; break;
       case MODE_BIG5: p = std_big5_program; break;
       default:
-	fatal("Internal error in rfc1345\n");
+	Pike_fatal("Internal error in rfc1345\n");
       }
       push_object(clone_object(p, 0));
       ((struct std_rfc_stor *)(sp[-1].u.object->storage+std_rfc_stor_offs))
@@ -1006,7 +1006,7 @@ static void feed_utf8e(struct std_cs_stor *cs, struct string_builder *sb,
     }
     break;
   default:
-    fatal("Illegal shift size!\n");
+    Pike_fatal("Illegal shift size!\n");
   }
 }
 
@@ -1077,7 +1077,7 @@ static void feed_utf7_5e(struct std_cs_stor *cs, struct string_builder *sb,
     }
     break;
   default:
-    fatal("Illegal shift size!\n");
+    Pike_fatal("Illegal shift size!\n");
   }
 }
 
@@ -1231,7 +1231,7 @@ static void feed_utf7e(struct utf7_stor *u7, struct string_builder *sb,
     }
     break;
   default:
-    fatal("Illegal shift size!\n");
+    Pike_fatal("Illegal shift size!\n");
   }
 
   u7->dat = dat;
@@ -1338,7 +1338,7 @@ static void feed_std8e(struct std8e_stor *s8, struct string_builder *sb,
     }
     break;
   default:
-    fatal("Illegal shift size!\n");
+    Pike_fatal("Illegal shift size!\n");
   }
 }
 
@@ -1430,7 +1430,7 @@ static void feed_std16e(struct std16e_stor *s16, struct string_builder *sb,
     }
     break;
   default:
-    fatal("Illegal shift size!\n");
+    Pike_fatal("Illegal shift size!\n");
   }
 }
 
diff --git a/src/modules/_Charset/iso2022.c b/src/modules/_Charset/iso2022.c
index eab8f321d9688c1b4f5fd0caf9b505d142d3b5d1..e78e2cbeda3cc8c7f2e9f23ce9ef0c2de9f6d465 100644
--- a/src/modules/_Charset/iso2022.c
+++ b/src/modules/_Charset/iso2022.c
@@ -3,7 +3,7 @@
 #endif /* HAVE_CONFIG_H */
 
 #include "global.h"
-RCSID("$Id: iso2022.c,v 1.22 2002/05/11 00:24:26 nilsson Exp $");
+RCSID("$Id: iso2022.c,v 1.23 2002/08/15 14:50:27 marcus Exp $");
 #include "program.h"
 #include "interpret.h"
 #include "stralloc.h"
@@ -638,7 +638,7 @@ static void eat_enc_string(struct pike_string *str, struct iso2022enc_stor *s,
     }
     break;
   default:
-    fatal("Illegal shift size!\n");
+    Pike_fatal("Illegal shift size!\n");
   }
 }
 
diff --git a/src/modules/files/file.c b/src/modules/files/file.c
index b5d36021ed1cf331fa1275ec965b81193acfdc9b..4c0645cfa983e59fce35fe245955064c3dc8acf1 100644
--- a/src/modules/files/file.c
+++ b/src/modules/files/file.c
@@ -6,7 +6,7 @@
 /**/
 #define NO_PIKE_SHORTHAND
 #include "global.h"
-RCSID("$Id: file.c,v 1.238 2002/06/27 14:22:28 nilsson Exp $");
+RCSID("$Id: file.c,v 1.239 2002/08/15 14:50:27 marcus Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -169,7 +169,7 @@ static struct my_file *get_file_storage(struct object *o)
 #define OOBOP(X)
 #endif
 #define CHECK_FILEP(o) \
-do { if(o->prog && !get_storage(o,file_program)) fatal("%p is not a file object.\n",o); } while (0)
+do { if(o->prog && !get_storage(o,file_program)) Pike_fatal("%p is not a file object.\n",o); } while (0)
 #define DEBUG_CHECK_INTERNAL_REFERENCE(X) do {				\
   if( ((X)->fd!=-1 && (							\
      (query_read_callback((X)->fd)==file_read_callback) ||		\
@@ -177,7 +177,7 @@ do { if(o->prog && !get_storage(o,file_program)) fatal("%p is not a file object.
 OOBOP( || (query_read_oob_callback((X)->fd)==file_read_oob_callback) ||	\
      (query_write_oob_callback((X)->fd)==file_write_oob_callback) ))) != \
   !!( (X)->flags & FILE_HAS_INTERNAL_REF ))				\
-         fatal("Internal reference is wrong. %d\n",(X)->flags & FILE_HAS_INTERNAL_REF);		\
+         Pike_fatal("Internal reference is wrong. %d\n",(X)->flags & FILE_HAS_INTERNAL_REF);		\
    } while (0)
 #else
 #define CHECK_FILEP(o)
@@ -1445,7 +1445,7 @@ static int do_close(int flags)
     return 1;
 
   default:
-    fatal("Bug in switch implementation!\n");
+    Pike_fatal("Bug in switch implementation!\n");
     return 0; /* Make CC happy */
   }
 }
@@ -3173,7 +3173,7 @@ static void exit_file_lock_key(struct object *o)
     int err;
 #ifdef PIKE_DEBUG
     if(THIS_KEY->f->key != o)
-      fatal("File lock key is wrong!\n");
+      Pike_fatal("File lock key is wrong!\n");
 #endif
 
     do
@@ -3392,7 +3392,7 @@ void check_static_file_data(struct callback *a, void *b, void *c)
   {
 #define FILE_FUNC(X,Y,Z) \
     if(PIKE_CONCAT(Y,_function_number)<0 || PIKE_CONCAT(Y,_function_number)>file_program->num_identifier_references) \
-      fatal(#Y "_function_number is incorrect: %ld\n", \
+      Pike_fatal(#Y "_function_number is incorrect: %ld\n", \
             TO_LONG(PIKE_CONCAT(Y,_function_number)));
 #include "file_functions.h"
   }
diff --git a/src/modules/files/sendfile.c b/src/modules/files/sendfile.c
index e67176172709713831a5aaf529df1049a6b21857..13497ed1557a51f26990939cb7b64e3d53707bd5 100644
--- a/src/modules/files/sendfile.c
+++ b/src/modules/files/sendfile.c
@@ -1,5 +1,5 @@
 /*
- * $Id: sendfile.c,v 1.56 2002/05/11 00:27:04 nilsson Exp $
+ * $Id: sendfile.c,v 1.57 2002/08/15 14:50:27 marcus Exp $
  *
  * Sends headers + from_fd[off..off+len-1] + trailers to to_fd asyncronously.
  *
@@ -398,9 +398,9 @@ void low_do_sendfile(struct pike_sendfile *this)
       case EFAULT:
 	/* Bad arguments */
 #ifdef HAVE_FREEBSD_SENDFILE
-	fatal("FreeBSD style sendfile(): EFAULT\n");
+	Pike_fatal("FreeBSD style sendfile(): EFAULT\n");
 #else /* !HAVE_FREEBSD_SENDFILE */
-	fatal("HP/UX style sendfile(): EFAULT\n");
+	Pike_fatal("HP/UX style sendfile(): EFAULT\n");
 #endif /* HAVE_FREEBSD_SENDFILE */
 	break;
       case EBADF:
@@ -718,7 +718,7 @@ static void sf_create(INT32 args)
 #ifdef PIKE_DEBUG
     if ((sp[5-args].type != T_OBJECT) ||
 	(sp[5-args].u.object != sf.to_file)) {
-      fatal("sendfile: Stack out of sync(1).\n");
+      Pike_fatal("sendfile: Stack out of sync(1).\n");
     }
 #endif /* PIKE_DEBUG */
     sf.to_file = *ob;
@@ -757,7 +757,7 @@ static void sf_create(INT32 args)
 #ifdef PIKE_DEBUG
       if ((sp[1-args].type != T_OBJECT) ||
 	  (sp[1-args].u.object != sf.from_file)) {
-	fatal("sendfile: Stack out of sync(2).\n");
+	Pike_fatal("sendfile: Stack out of sync(2).\n");
       }
 #endif /* PIKE_DEBUG */
       sf.from_file = *ob;
@@ -887,7 +887,7 @@ static void sf_create(INT32 args)
     struct array *a = copy_array(sf.headers);
 #ifdef PIKE_DEBUG
     if ((sp[-args].type != T_ARRAY) || (sp[-args].u.array != sf.headers)) {
-      fatal("sendfile: Stack out of sync(3).\n");
+      Pike_fatal("sendfile: Stack out of sync(3).\n");
     }
 #endif /* PIKE_DEBUG */
     free_array(sf.headers);
@@ -898,7 +898,7 @@ static void sf_create(INT32 args)
     struct array *a = copy_array(sf.trailers);
 #ifdef PIKE_DEBUG
     if ((sp[4-args].type != T_ARRAY) || (sp[4-args].u.array != sf.trailers)) {
-      fatal("sendfile: Stack out of sync(4).\n");
+      Pike_fatal("sendfile: Stack out of sync(4).\n");
     }
 #endif /* PIKE_DEBUG */
     free_array(sf.trailers);
diff --git a/src/modules/files/socket.c b/src/modules/files/socket.c
index b815abd174da774d34a5c668348a7c92764d274b..a3e5a9dffd20602c229850e7a9c5bc563e8a1a3b 100644
--- a/src/modules/files/socket.c
+++ b/src/modules/files/socket.c
@@ -22,7 +22,7 @@
 #include "file_machine.h"
 #include "file.h"
 
-RCSID("$Id: socket.c,v 1.62 2002/05/31 22:31:40 nilsson Exp $");
+RCSID("$Id: socket.c,v 1.63 2002/08/15 14:50:27 marcus Exp $");
 
 #ifdef HAVE_SYS_TYPE_H
 #include <sys/types.h>
@@ -158,7 +158,7 @@ static void port_accept_callback(int fd,void *data)
 #ifndef __NT__
 #ifdef PIKE_DEBUG
   if(!query_nonblocking(f->fd))
-    fatal("Port is in blocking mode in port accept callback!!!\n");
+    Pike_fatal("Port is in blocking mode in port accept callback!!!\n");
 #endif
 #endif
 
diff --git a/src/modules/files/stat.c b/src/modules/files/stat.c
index ecae66bf4701fc0c13151546174820a6e9148c95..d1ce07c4688b8535a3886a79969f1a2559a432d4 100644
--- a/src/modules/files/stat.c
+++ b/src/modules/files/stat.c
@@ -1,9 +1,9 @@
 /*
- * $Id: stat.c,v 1.21 2002/05/11 00:18:06 nilsson Exp $
+ * $Id: stat.c,v 1.22 2002/08/15 14:50:27 marcus Exp $
  */
 
 #include "global.h"
-RCSID("$Id: stat.c,v 1.21 2002/05/11 00:18:06 nilsson Exp $");
+RCSID("$Id: stat.c,v 1.22 2002/08/15 14:50:27 marcus Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -566,7 +566,7 @@ static void stat_index(INT32 args)
 	       break;
 
 	   default:
-	     fatal ("stat_index is not kept up-to-date with stat_map.\n");
+	     Pike_fatal ("stat_index is not kept up-to-date with stat_map.\n");
 	 }
       }
       else
@@ -816,7 +816,7 @@ static void stat_index_set (INT32 args)
 	  case STAT_CTIME: DO_NOT_WARN(THIS_STAT->s.st_ctime = int_val); break;
 
 	  default:
-	    fatal ("stat_index_set is not kept up-to-date with stat_map.\n");
+	    Pike_fatal ("stat_index_set is not kept up-to-date with stat_map.\n");
 	}
     }
   }
diff --git a/src/modules/files/udp.c b/src/modules/files/udp.c
index 1c4a2e1da30a7467620fb12ac42320c4f7d6d345..e7eb9a1783adfa6746bcd7d5b85db76416d59a77 100644
--- a/src/modules/files/udp.c
+++ b/src/modules/files/udp.c
@@ -1,5 +1,5 @@
 /*
- * $Id: udp.c,v 1.36 2002/06/11 10:06:54 grubba Exp $
+ * $Id: udp.c,v 1.37 2002/08/15 14:50:27 marcus Exp $
  */
 
 #define NO_PIKE_SHORTHAND
@@ -7,7 +7,7 @@
 
 #include "file_machine.h"
 
-RCSID("$Id: udp.c,v 1.36 2002/06/11 10:06:54 grubba Exp $");
+RCSID("$Id: udp.c,v 1.37 2002/08/15 14:50:27 marcus Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -452,7 +452,7 @@ void udp_read(INT32 args)
 	  Pike_error("Out of memory\n");
 #ifdef ENOTSOCK
        case ENOTSOCK:
-	  fatal("reading from non-socket fd!!!\n");
+	  Pike_fatal("reading from non-socket fd!!!\n");
 #endif
        case EWOULDBLOCK:
 	  push_int( 0 );
diff --git a/src/modules/spider/xml.c b/src/modules/spider/xml.c
index c25d02425d0547fff0724dd77604c22e00626330..b37e2ea9805ec60a028512538f18c413cc03241f 100644
--- a/src/modules/spider/xml.c
+++ b/src/modules/spider/xml.c
@@ -650,7 +650,7 @@ ISWRAP(isHexChar)
 
 #define PEEK(X) \
 ( IF_XMLDEBUG(((X) > data->input.len)? \
-    (fatal("PEEK out of bounds (%ld/%ld)\n", \
+    (Pike_fatal("PEEK out of bounds (%ld/%ld)\n", \
            PTRDIFF_T_TO_LONG(X), \
            PTRDIFF_T_TO_LONG(data->input.len)), 0):) \
   INDEX_PCHARP(data->input.datap,X) )
@@ -995,7 +995,7 @@ static int gobble(struct xmldata *data, char *s)
     XMLERROR("Missing ';' after parsed entity reference.");	\
   READ(1);							\
   PARSE_REF(ATTR,PARSE_RECURSIVELY);				\
-  DO_IF_DEBUG(if(sp<spsave) fatal("Stack underflow\n");)        \
+  DO_IF_DEBUG(if(sp<spsave) Pike_fatal("Stack underflow\n");)        \
 }while(0)
 
 
@@ -1574,7 +1574,7 @@ void read_choice_seq_or_name(struct xmldata *data, int maybe_pcdata)
 	    {
 #ifdef PIKE_DEBUG
 	      if(!SAFE_IS_ZERO(sp-num))
-		fatal("num not in sync with arguments on stack!\n");
+		Pike_fatal("num not in sync with arguments on stack!\n");
 #endif
 	      if(seq == ',')
 		sp[-num].u.string=make_shared_string(",");
@@ -1641,7 +1641,7 @@ void read_choice_seq_or_name(struct xmldata *data, int maybe_pcdata)
 
 #ifdef PIKE_DEBUG
   if(sp != save_sp2+1)
-    fatal("XML: Stack corruption in read_choice_seq_or_name.\n");
+    Pike_fatal("XML: Stack corruption in read_choice_seq_or_name.\n");
 #endif
 }
 
@@ -1656,7 +1656,7 @@ static int really_low_parse_dtd(struct xmldata *data)
   {
 #ifdef PIKE_DEBUG
     if(sp<save_sp)
-      fatal("Stack underflow.\n");
+      Pike_fatal("Stack underflow.\n");
 #endif
     switch(PEEK(0))
     {
@@ -1971,7 +1971,7 @@ static int really_low_parse_dtd(struct xmldata *data)
 		    }
 #ifdef PIKE_DEBUG
 		    if(sp<save)
-		      fatal("Stack underflow.\n");
+		      Pike_fatal("Stack underflow.\n");
 #endif
 		    f_aggregate(DO_NOT_WARN(sp - save));
 		    SKIPSPACE();
@@ -2106,7 +2106,7 @@ static int really_low_parse_dtd(struct xmldata *data)
 		    }
 #ifdef PIKE_DEBUG
 		    if(sp<save)
-		      fatal("Stack underflow.\n");
+		      Pike_fatal("Stack underflow.\n");
 #endif
 		    f_aggregate(DO_NOT_WARN(sp - save));
 		    f_aggregate(2);
@@ -2231,7 +2231,7 @@ static int really_low_parse_dtd(struct xmldata *data)
 	    }
 #ifdef PIKE_DEBUG
 	    if(sp<save_sp)
-	      fatal("Stack underflow.\n");
+	      Pike_fatal("Stack underflow.\n");
 #endif
 	    break;
 
@@ -2286,7 +2286,7 @@ static int low_parse_dtd(struct xmldata *data)
   done=really_low_parse_dtd(data);
 #ifdef PIKE_DEBUG
   if(sp<save_sp)
-    fatal("Stack underflow.\n");
+    Pike_fatal("Stack underflow.\n");
 #endif
 #ifdef VERBOSE_XMLDEBUG
   fprintf(stderr,"Exiting low_parse_dtd %p %p\n",sp,save_sp);
@@ -2663,7 +2663,7 @@ static int low_parse_xml(struct xmldata *data,
   pop_stack();
 #ifdef PIKE_DEBUG
   if(sp<save_sp)
-    fatal("Stack underflow.\n");
+    Pike_fatal("Stack underflow.\n");
 #endif
   f_aggregate(DO_NOT_WARN(sp - save_sp));
   /* There is now one value on the stack */
diff --git a/src/modules/sprintf/sprintf.c b/src/modules/sprintf/sprintf.c
index 4fe8908afbe1875691ba39e1b3847bd968c37f3e..df3ee6dd34d7364d880dda39e07777e527ba1f43 100644
--- a/src/modules/sprintf/sprintf.c
+++ b/src/modules/sprintf/sprintf.c
@@ -281,7 +281,7 @@
  *!   @[lfun::_sprintf()]
  */
 #include "global.h"
-RCSID("$Id: sprintf.c,v 1.92 2002/05/31 22:31:40 nilsson Exp $");
+RCSID("$Id: sprintf.c,v 1.93 2002/08/15 14:50:27 marcus Exp $");
 #include "pike_error.h"
 #include "array.h"
 #include "svalue.h"
@@ -972,7 +972,7 @@ INLINE static int do_one(struct format_stack *fs,
 	      	if(sp[-1].type == T_STRING)				      \
 	      	{	                                                      \
               	  DO_IF_DEBUG( if(fs->fsp->to_free_string)                    \
-              		       fatal("OOps in sprintf\n"); )                  \
+              		       Pike_fatal("OOps in sprintf\n"); )                  \
               	  fs->fsp->to_free_string = (--sp)->u.string;	              \
 	      								      \
 	      	  fs->fsp->b = MKPCHARP_STR(fs->fsp->to_free_string);	      \
@@ -1028,7 +1028,7 @@ static void low_pike_sprintf(struct format_stack *fs,
     fs->fsp++;
 #ifdef PIKE_DEBUG
     if(fs->fsp < fs->format_info_stack)
-      fatal("sprintf: fs->fsp out of bounds.\n");
+      Pike_fatal("sprintf: fs->fsp out of bounds.\n");
 #endif
     if(fs->fsp-fs->format_info_stack==FORMAT_INFO_STACK_SIZE)
       sprintf_error(fs, "Sprintf stack overflow.\n");
@@ -1069,7 +1069,7 @@ static void low_pike_sprintf(struct format_stack *fs,
 	}else{
 	  sprintf_error(fs, "Error in format string, \\%o is not a format.\n",EXTRACT_PCHARP(a));
 	}
-	fatal("Foo, you shouldn't be here!\n");
+	Pike_fatal("Foo, you shouldn't be here!\n");
 
         /* First the modifiers */
 
@@ -1233,9 +1233,9 @@ static void low_pike_sprintf(struct format_stack *fs,
 	  }
 #ifdef PIKE_DEBUG
 	  if(fs->fsp < fs->format_info_stack)
-	    fatal("sprintf: fs->fsp out of bounds.\n");
+	    Pike_fatal("sprintf: fs->fsp out of bounds.\n");
 	  if(fs->fsp!=fsp_save)
-	    fatal("sprintf: fs->fsp incorrect after recursive sprintf.\n");
+	    Pike_fatal("sprintf: fs->fsp incorrect after recursive sprintf.\n");
 #endif
 	  fs->fsp->b=MKPCHARP_STR(b.s);
 	  fs->fsp->len=b.s->len;
@@ -1602,7 +1602,7 @@ static void low_pike_sprintf(struct format_stack *fs,
   {
 #ifdef PIKE_DEBUG
     if(fs->fsp < fs->format_info_stack)
-      fatal("sprintf: fsp out of bounds.\n");
+      Pike_fatal("sprintf: fsp out of bounds.\n");
 #endif
     
     if(fs->fsp->fi_free_string)
diff --git a/src/modules/sybase/sybase.c b/src/modules/sybase/sybase.c
index 57ff803fce55fa30301ab1578f66b2d584046179..52f8071e670aa327427e4f0be5855c2df2d6654d 100644
--- a/src/modules/sybase/sybase.c
+++ b/src/modules/sybase/sybase.c
@@ -23,7 +23,7 @@
 #include "sybase_config.h"
 #include "global.h"
 
-RCSID("$Id: sybase.c,v 1.8 2002/05/11 00:21:24 nilsson Exp $");
+RCSID("$Id: sybase.c,v 1.9 2002/08/15 14:50:28 marcus Exp $");
 
 #ifdef HAVE_SYBASE
 
@@ -315,7 +315,7 @@ static void sybase_destroy (struct object * o) {
     }
     this->busy--;
     sybdebug((stderr,"Busy status: %d\n",this->busy));
-    /* if we fail, it's useless anyways. Maybe we should fatal() */
+    /* if we fail, it's useless anyways. Maybe we should Pike_fatal() */
   }
   
   if (this->cmd) {
@@ -326,7 +326,7 @@ static void sybase_destroy (struct object * o) {
       sybdebug((stderr,"\tHm... failed\n"));
     }
     this->cmd=NULL; 
-    /* if we fail, it's useless anyways. Maybe we should fatal() */
+    /* if we fail, it's useless anyways. Maybe we should Pike_fatal() */
   }
 
   if (this->results) {
@@ -357,7 +357,7 @@ static void sybase_destroy (struct object * o) {
       sybdebug((stderr,"Gasp! Failed!\n"));
     }
     this->connection=NULL;
-    /* if we fail, it's useless anyways. Maybe we should fatal() */
+    /* if we fail, it's useless anyways. Maybe we should Pike_fatal() */
   }
 
   SYB_LOCK(mainlock); /* this is really needed only here */
@@ -375,7 +375,7 @@ static void sybase_destroy (struct object * o) {
       sybdebug((stderr,"\tGosh Robin! You're right!\n"));
     }
     this->context=NULL;
-    /* if we fail, it's useless anyways. Maybe we should fatal() */
+    /* if we fail, it's useless anyways. Maybe we should Pike_fatal() */
   }
 
   SYB_UNLOCK(mainlock);
@@ -907,7 +907,7 @@ static void f_big_query(INT32 args) {
     function_result=NULL;
     break;
   default:
-    fatal("Internal error! Wrong result in big_query\n");
+    Pike_fatal("Internal error! Wrong result in big_query\n");
     break;
   }
   /* extra safety check. Paranoia. */
diff --git a/src/multiset.c b/src/multiset.c
index 2539d458e1661276e76b64d228bef1be4e976478..51e5317164702cee253d6fb3b470e79339f2e763 100644
--- a/src/multiset.c
+++ b/src/multiset.c
@@ -7,7 +7,7 @@
  * Created by Martin Stjernholm 2001-05-07
  */
 
-RCSID("$Id: multiset.c,v 1.49 2002/05/31 22:41:25 nilsson Exp $");
+RCSID("$Id: multiset.c,v 1.50 2002/08/15 14:49:23 marcus Exp $");
 
 #include "builtin_functions.h"
 #include "gc.h"
@@ -54,7 +54,7 @@ static inline struct msnode_indval *msnode_indval_check (struct msnode_indval *x
   {return x;}
 
 #define sub_extra_ref(X) do {						\
-    if (!sub_ref (X)) fatal ("Got zero refs to " #X " unexpectedly.\n"); \
+    if (!sub_ref (X)) Pike_fatal ("Got zero refs to " #X " unexpectedly.\n"); \
   } while (0)
 
 PMOD_EXPORT const char msg_no_multiset_flag_marker[] =
@@ -239,11 +239,11 @@ void free_multiset_data (struct multiset_data *msd);
     FREE_PROT (L);							\
     DO_IF_DEBUG (							\
       if (L->node_refs)							\
-	fatal ("Freeing multiset with %d node refs.\n", L->node_refs);	\
+	Pike_fatal ("Freeing multiset with %d node refs.\n", L->node_refs);	\
       if (L->msd->refs <= 0)						\
-	fatal ("Too few refs %ld to multiset data.\n", L->msd->refs);	\
+	Pike_fatal ("Too few refs %ld to multiset data.\n", L->msd->refs);	\
       if (L->msd->noval_refs)						\
-	fatal ("Freeing multiset data with %d noval_refs.\n", L->msd->noval_refs); \
+	Pike_fatal ("Freeing multiset data with %d noval_refs.\n", L->msd->noval_refs); \
     );									\
     if (!sub_ref (L->msd)) free_multiset_data (L->msd);			\
     DOUBLEUNLINK (first_multiset, L);					\
@@ -270,7 +270,7 @@ static struct multiset_data *low_alloc_multiset_data (int allocsize, INT16 flags
   struct multiset_data *msd;
 
 #ifdef PIKE_DEBUG
-  if (allocsize < 0) fatal ("Invalid alloc size %d\n", allocsize);
+  if (allocsize < 0) Pike_fatal ("Invalid alloc size %d\n", allocsize);
 #endif
 
   msd = (struct multiset_data *) xalloc (
@@ -332,9 +332,9 @@ void free_multiset_data (struct multiset_data *msd)
 
 #ifdef PIKE_DEBUG
   if (msd->refs)
-    fatal ("Attempt to free multiset_data with refs.\n");
+    Pike_fatal ("Attempt to free multiset_data with refs.\n");
   if (msd->noval_refs)
-    fatal ("There are forgotten noval_refs.\n");
+    Pike_fatal ("There are forgotten noval_refs.\n");
 #endif
 
   /* We trust as few values as possible here, e.g. size and
@@ -489,18 +489,18 @@ static struct multiset_data *resize_multiset_data (struct multiset_data *old,
 
 #ifdef PIKE_DEBUG
   if (old->refs > 1)
-    fatal ("Attempt to resize multiset_data with several refs.\n");
+    Pike_fatal ("Attempt to resize multiset_data with several refs.\n");
   if (verbatim) {
     if (newsize < old->allocsize)
-      fatal ("Cannot shrink multiset_data (from %d to %d) in verbatim mode.\n",
+      Pike_fatal ("Cannot shrink multiset_data (from %d to %d) in verbatim mode.\n",
 	     old->allocsize, newsize);
   }
   else
     if (newsize < old->size)
-      fatal ("Cannot resize multiset_data with %d elements to %d.\n",
+      Pike_fatal ("Cannot resize multiset_data with %d elements to %d.\n",
 	     old->size, newsize);
   if (newsize == old->allocsize)
-    fatal ("Unnecessary resize of multiset_data to same size.\n");
+    Pike_fatal ("Unnecessary resize of multiset_data to same size.\n");
 #endif
 
   /* Note approximate code duplication in copy_multiset_data and
@@ -620,7 +620,7 @@ int prepare_for_change (struct multiset *l, int verbatim)
 
 #ifdef PIKE_DEBUG
   if (!verbatim && l->node_refs)
-    fatal ("The verbatim flag not set for multiset with node refs.\n");
+    Pike_fatal ("The verbatim flag not set for multiset with node refs.\n");
 #endif
 
   if (msd->refs > 1) {
@@ -653,7 +653,7 @@ int prepare_for_add (struct multiset *l, int verbatim)
 
 #ifdef PIKE_DEBUG
   if (!verbatim && l->node_refs)
-    fatal ("The verbatim flag not set for multiset with node refs.\n");
+    Pike_fatal ("The verbatim flag not set for multiset with node refs.\n");
 #endif
 
   if (msd->refs > 1) {
@@ -691,7 +691,7 @@ int prepare_for_value_change (struct multiset *l, int verbatim)
 
 #ifdef PIKE_DEBUG
   if (!verbatim && l->node_refs)
-    fatal ("The verbatim flag not set for multiset with node refs.\n");
+    Pike_fatal ("The verbatim flag not set for multiset with node refs.\n");
 #endif
 
   /* Assume that the caller holds a value lock. */
@@ -717,7 +717,7 @@ static union msnode *alloc_msnode_verbatim (struct multiset_data *msd)
 {
   union msnode *node = msd->free_list;
 #ifdef PIKE_DEBUG
-  if (!node) fatal ("Verbatim multiset data block unexpectedly full.\n");
+  if (!node) Pike_fatal ("Verbatim multiset data block unexpectedly full.\n");
 #endif
 
   if (node->i.ind.type == T_DELETED) {
@@ -726,7 +726,7 @@ static union msnode *alloc_msnode_verbatim (struct multiset_data *msd)
       prev = node;
       node = NEXT_FREE (node);
 #ifdef PIKE_DEBUG
-      if (!node) fatal ("Verbatim multiset data block unexpectedly full.\n");
+      if (!node) Pike_fatal ("Verbatim multiset data block unexpectedly full.\n");
 #endif
     } while (node->i.ind.type == T_DELETED);
     SET_NEXT_FREE (prev, NEXT_FREE (node));
@@ -743,7 +743,7 @@ static union msnode *alloc_msnode_verbatim (struct multiset_data *msd)
       (NODE) = alloc_msnode_verbatim (MSD);				\
     else {								\
       (NODE) = (MSD)->free_list;					\
-      DO_IF_DEBUG (if (!(NODE)) fatal ("Multiset data block unexpectedly full.\n")); \
+      DO_IF_DEBUG (if (!(NODE)) Pike_fatal ("Multiset data block unexpectedly full.\n")); \
       (MSD)->free_list = NEXT_FREE (NODE);				\
       if ((NODE)->i.ind.type == PIKE_T_UNKNOWN) (MSD)->size++;		\
     }									\
@@ -901,7 +901,7 @@ static void midflight_remove_node (struct multiset *l,
   ONERROR uwp;
   sub_ref (*pmsd);
 #ifdef PIKE_DEBUG
-  if (!(*pmsd)->refs) fatal ("Expected extra ref to passed msd.\n");
+  if (!(*pmsd)->refs) Pike_fatal ("Expected extra ref to passed msd.\n");
 #endif
   *pmsd = NULL;
   add_msnode_ref (l);
@@ -1086,7 +1086,7 @@ again:
 	  case FIND_DESTRUCTED:
 	    midflight_remove_node_faster (new.msd, rbstack);
 	    break;
-	  default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	  default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
 	}
       }
 
@@ -1124,7 +1124,7 @@ PMOD_EXPORT struct multiset *mkmultiset_2 (struct array *indices,
   debug_malloc_touch (indices);
   debug_malloc_touch (values);
   if (values && values->size != indices->size)
-    fatal ("Indices and values not of same size (%d vs %d).\n",
+    Pike_fatal ("Indices and values not of same size (%d vs %d).\n",
 	   indices->size, values->size);
   if (cmp_less) check_svalue (cmp_less);
 #endif
@@ -1178,7 +1178,7 @@ PMOD_EXPORT struct multiset *mkmultiset_2 (struct array *indices,
 	  case FIND_DESTRUCTED:
 	    midflight_remove_node_faster (new.msd, rbstack);
 	    break;
-	  default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	  default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
 	}
       }
 
@@ -1313,7 +1313,7 @@ static enum find_types low_multiset_find_le_gt (
 
 #ifdef PIKE_DEBUG
   /* Allow zero refs too since that's used during initial building. */
-  if (msd->refs == 1) fatal ("Copy-on-write assumed here.\n");
+  if (msd->refs == 1) Pike_fatal ("Copy-on-write assumed here.\n");
 #endif
 
   if ((node = HDR (msd->root))) {
@@ -1367,7 +1367,7 @@ static enum find_types low_multiset_find_lt_ge (
 
 #ifdef PIKE_DEBUG
   /* Allow zero refs too since that's used during initial building. */
-  if (msd->refs == 1) fatal ("Copy-on-write assumed here.\n");
+  if (msd->refs == 1) Pike_fatal ("Copy-on-write assumed here.\n");
 #endif
 
   if ((node = HDR (msd->root))) {
@@ -1442,7 +1442,7 @@ PMOD_EXPORT ptrdiff_t multiset_find_lt (struct multiset *l, struct svalue *key)
 	case FIND_DESTRUCTED:
 	  midflight_remove_node (l, &msd, node);
 	  break;
-	default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
       }
   }
 
@@ -1484,7 +1484,7 @@ PMOD_EXPORT ptrdiff_t multiset_find_ge (struct multiset *l, struct svalue *key)
 	case FIND_DESTRUCTED:
 	  midflight_remove_node (l, &msd, node);
 	  break;
-	default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
       }
   }
 
@@ -1526,7 +1526,7 @@ PMOD_EXPORT ptrdiff_t multiset_find_le (struct multiset *l, struct svalue *key)
 	case FIND_DESTRUCTED:
 	  midflight_remove_node (l, &msd, node);
 	  break;
-	default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
       }
   }
 
@@ -1568,7 +1568,7 @@ PMOD_EXPORT ptrdiff_t multiset_find_gt (struct multiset *l, struct svalue *key)
 	case FIND_DESTRUCTED:
 	  midflight_remove_node (l, &msd, node);
 	  break;
-	default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
       }
   }
 
@@ -1730,7 +1730,7 @@ static enum find_types low_multiset_track_eq (
 
 #ifdef PIKE_DEBUG
   /* Allow zero refs too since that's used during initial building. */
-  if (msd->refs == 1) fatal ("Copy-on-write assumed here.\n");
+  if (msd->refs == 1) Pike_fatal ("Copy-on-write assumed here.\n");
 #endif
 
   if (msd->cmp_less.type == T_INT) {
@@ -1798,7 +1798,7 @@ static enum find_types low_multiset_track_eq (
     /* A node was found during stepping. Adjust rbstack. */
     while (step_count--) LOW_RB_TRACK_PREV (rbstack, found_node);
 #ifdef PIKE_DEBUG
-    if (node != RBSTACK_PEEK (rbstack)) fatal ("Stack stepping failed.\n");
+    if (node != RBSTACK_PEEK (rbstack)) Pike_fatal ("Stack stepping failed.\n");
 #endif
 
     *track = rbstack;
@@ -1816,7 +1816,7 @@ static enum find_types low_multiset_track_le_gt (
 
 #ifdef PIKE_DEBUG
   /* Allow zero refs too since that's used during initial building. */
-  if (msd->refs == 1) fatal ("Copy-on-write assumed here.\n");
+  if (msd->refs == 1) Pike_fatal ("Copy-on-write assumed here.\n");
 #endif
 
   if (msd->cmp_less.type == T_INT) {
@@ -1884,9 +1884,9 @@ void multiset_fix_type_field (struct multiset *l)
 
 #ifdef PIKE_DEBUG
   if (ind_types & ~msd->ind_types)
-    fatal ("Multiset indices type field lacks 0x%x.\n", ind_types & ~msd->ind_types);
+    Pike_fatal ("Multiset indices type field lacks 0x%x.\n", ind_types & ~msd->ind_types);
   if (val_types & ~msd->val_types)
-    fatal ("Multiset values type field lacks 0x%x.\n", val_types & ~msd->val_types);
+    Pike_fatal ("Multiset values type field lacks 0x%x.\n", val_types & ~msd->val_types);
 #endif
 
   msd->ind_types = ind_types;
@@ -1916,9 +1916,9 @@ static void check_multiset_type_fields (struct multiset *l)
     if (!(msd->flags & MULTISET_INDVAL)) val_types = BIT_INT;
 
   if (ind_types & ~msd->ind_types)
-    fatal ("Multiset indices type field lacks 0x%x.\n", ind_types & ~msd->ind_types);
+    Pike_fatal ("Multiset indices type field lacks 0x%x.\n", ind_types & ~msd->ind_types);
   if (val_types & ~msd->val_types)
-    fatal ("Multiset values type field lacks 0x%x.\n", val_types & ~msd->val_types);
+    Pike_fatal ("Multiset values type field lacks 0x%x.\n", val_types & ~msd->val_types);
 }
 #endif
 
@@ -1957,7 +1957,7 @@ PMOD_EXPORT void multiset_insert (struct multiset *l,
 	MSD->root = NEW;						\
 	low_rb_init_root (HDR (NEW));					\
 	break;								\
-      default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));		\
+      default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));		\
     }									\
   } while (0)
 
@@ -2065,7 +2065,7 @@ PMOD_EXPORT ptrdiff_t multiset_insert_2 (struct multiset *l,
 	  msd = l->msd;
 	  break;
 
-	default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
       }
   }
 
@@ -2154,7 +2154,7 @@ PMOD_EXPORT ptrdiff_t multiset_add (struct multiset *l,
 	  msd = l->msd;
 	  break;
 
-	default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
       }
   }
 
@@ -2436,7 +2436,7 @@ PMOD_EXPORT int multiset_delete_2 (struct multiset *l,
 	  msd = l->msd;
 	  break;
 
-	default: DO_IF_DEBUG (fatal ("Invalid find_type.\n"));
+	default: DO_IF_DEBUG (Pike_fatal ("Invalid find_type.\n"));
       }
   }
 
@@ -2734,7 +2734,7 @@ PMOD_EXPORT void check_multiset_for_destruct (struct multiset *l)
   debug_malloc_touch (l);
   debug_malloc_touch (msd);
   if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE)
-    fatal("check_multiset_for_destruct called in invalid pass inside gc.\n");
+    Pike_fatal("check_multiset_for_destruct called in invalid pass inside gc.\n");
 #endif
 
   if (msd->root &&
@@ -2773,9 +2773,9 @@ PMOD_EXPORT void check_multiset_for_destruct (struct multiset *l)
 
 #ifdef PIKE_DEBUG
     if (ind_types & ~msd->ind_types)
-      fatal ("Multiset indices type field lacks 0x%x.\n", ind_types & ~msd->ind_types);
+      Pike_fatal ("Multiset indices type field lacks 0x%x.\n", ind_types & ~msd->ind_types);
     if (val_types & ~msd->val_types)
-      fatal ("Multiset values type field lacks 0x%x.\n", val_types & ~msd->val_types);
+      Pike_fatal ("Multiset values type field lacks 0x%x.\n", val_types & ~msd->val_types);
 #endif
 
     msd->ind_types = ind_types;
@@ -2980,7 +2980,7 @@ PMOD_EXPORT struct multiset *merge_multisets (struct multiset *a,
 
 #ifdef PIKE_DEBUG
   if (operation & PIKE_MERGE_DESTR_B)
-    fatal ("Destructiveness on second operand not supported.\n");
+    Pike_fatal ("Destructiveness on second operand not supported.\n");
 #endif
 
 #if 1
@@ -3002,7 +3002,7 @@ PMOD_EXPORT struct multiset *merge_multisets (struct multiset *a,
   if (operation & PIKE_MERGE_DESTR_A) {
 #ifdef PIKE_DEBUG
     if (a->refs != 1)
-      fatal ("Not safe to do destructive merge with several refs to the operand.\n");
+      Pike_fatal ("Not safe to do destructive merge with several refs to the operand.\n");
 #endif
     m.res = m.a = a;
     if (a == b)
@@ -3160,7 +3160,7 @@ PMOD_EXPORT struct multiset *merge_multisets (struct multiset *a,
     struct multiset_data *res_msd = m.res->msd;
     struct svalue a_ind, b_ind;
 
-    fatal ("FIXME: Merge of multisets with external sort function "
+    Pike_fatal ("FIXME: Merge of multisets with external sort function "
 	   "not yet implemented.\n");
 
     LOW_RB_MERGE (
@@ -3241,9 +3241,9 @@ PMOD_EXPORT struct multiset *merge_multisets (struct multiset *a,
 #ifdef PIKE_DEBUG
   if (operation & PIKE_MERGE_DESTR_A) {
     if (a->refs != 1)
-      fatal ("First operand grew external refs during destructive merge.\n");
+      Pike_fatal ("First operand grew external refs during destructive merge.\n");
     if (a->msd->refs > 1)
-      fatal ("Data block of first operand grew external refs "
+      Pike_fatal ("Data block of first operand grew external refs "
 	     "during destructive merge.\n");
   }
 #endif
@@ -3525,9 +3525,9 @@ node *make_node_from_multiset (struct multiset *l)
 
 #ifdef PIKE_DEBUG
     if (l->msd->cmp_less.type != T_INT)
-      fatal ("Didn't expect multiset with custom order function.\n");
+      Pike_fatal ("Didn't expect multiset with custom order function.\n");
     if (l->msd->flags & MULTISET_WEAK)
-      fatal ("Didn't expect multiset with weak flag(s).\n");
+      Pike_fatal ("Didn't expect multiset with weak flag(s).\n");
 #endif
 
     if (l->msd->flags & MULTISET_INDVAL) {
@@ -3673,12 +3673,12 @@ unsigned gc_touch_all_multisets (void)
   unsigned n = 0;
   struct multiset *l;
   if (first_multiset && first_multiset->prev)
-    fatal ("Error in multiset link list.\n");
+    Pike_fatal ("Error in multiset link list.\n");
   for (l = first_multiset; l; l = l->next) {
     debug_gc_touch (l);
     n++;
     if (l->next && l->next->prev != l)
-      fatal ("Error in multiset link list.\n");
+      Pike_fatal ("Error in multiset link list.\n");
   }
   return n;
 }
@@ -3700,7 +3700,7 @@ void gc_check_all_multisets (void)
     if (((int) msd) == 0x55555555) {
       fprintf (stderr, "** Zapped multiset in list of active multisets.\n");
       describe_something (l, T_MULTISET, 0, 2, 0, NULL);
-      fatal ("Zapped multiset in list of active multisets.\n");
+      Pike_fatal ("Zapped multiset in list of active multisets.\n");
     }
 #endif
 #ifdef PIKE_DEBUG
@@ -3818,7 +3818,7 @@ static void gc_unlink_msnode_shared (struct multiset_data *msd,
 	do {								\
 	  low_use_multiset_index (node, ind);				\
 	  if (!IS_DESTRUCTED (&ind) && RECURSE_FN (&ind, 1)) {		\
-	    DO_IF_DEBUG (fatal ("Didn't expect an svalue zapping now.\n")); \
+	    DO_IF_DEBUG (Pike_fatal ("Didn't expect an svalue zapping now.\n")); \
 	  }								\
 	  RECURSE_FN (&node->iv.val, 1);				\
 	  VAL_TYPES |= 1 << node->iv.val.type;				\
@@ -3828,7 +3828,7 @@ static void gc_unlink_msnode_shared (struct multiset_data *msd,
 	do {								\
 	  low_use_multiset_index (node, ind);				\
 	  if (!IS_DESTRUCTED (&ind) && RECURSE_FN (&ind, 1)) {		\
-	    DO_IF_DEBUG (fatal ("Didn't expect an svalue zapping now.\n")); \
+	    DO_IF_DEBUG (Pike_fatal ("Didn't expect an svalue zapping now.\n")); \
 	  }								\
 	} while ((node = low_multiset_next (node)));			\
     }									\
@@ -4112,13 +4112,13 @@ void init_multiset()
   test.i.ind.subtype = (1 << 16) - 1;
   test.i.ind.u.refs = (INT32 *) (ptrdiff_t) -1;
   if (HDR (&test)->flags & (MULTISET_FLAG_MASK))
-    fatal ("The ind svalue overlays the flags field in an unexpected way.\n");
+    Pike_fatal ("The ind svalue overlays the flags field in an unexpected way.\n");
   HDR (&test)->flags |= RB_FLAG_MASK;
   if (test.i.ind.type & MULTISET_FLAG_MARKER)
-    fatal ("The ind svalue overlays the flags field in an unexpected way.\n");
+    Pike_fatal ("The ind svalue overlays the flags field in an unexpected way.\n");
   test.i.ind.type |= MULTISET_FLAG_MARKER;
   if ((test.i.ind.type & ~MULTISET_FLAG_MASK) != (1 << 8) - 1)
-    fatal ("The ind svalue overlays the flags field in an unexpected way.\n");
+    Pike_fatal ("The ind svalue overlays the flags field in an unexpected way.\n");
 #endif
 #ifndef HAVE_UNION_INIT
   svalue_int_one.u.integer = 1;
@@ -4133,7 +4133,7 @@ void exit_multiset()
   if (svalue_int_one.type != T_INT ||
       svalue_int_one.subtype != NUMBER_NUMBER ||
       svalue_int_one.u.integer != 1)
-    fatal ("svalue_int_one has been changed.\n");
+    Pike_fatal ("svalue_int_one has been changed.\n");
 #endif
   free_all_multiset_blocks();
 }
@@ -4147,10 +4147,10 @@ union msnode *debug_check_msnode (struct multiset *l, ptrdiff_t nodepos,
   union msnode *node;
 
   if (l->node_refs <= 0)
-    fatal ("%s:%d: Got a node reference to a multiset without any.\n",
+    Pike_fatal ("%s:%d: Got a node reference to a multiset without any.\n",
 	   file, line);
   if (nodepos < 0 || nodepos >= msd->allocsize)
-    fatal ("%s:%d: Node offset %"PRINTPTRDIFFT"d "
+    Pike_fatal ("%s:%d: Node offset %"PRINTPTRDIFFT"d "
 	   "outside storage for multiset (size %d).\n",
 	   file, line, nodepos, msd->allocsize);
 
@@ -4158,15 +4158,15 @@ union msnode *debug_check_msnode (struct multiset *l, ptrdiff_t nodepos,
   switch (node->i.ind.type) {
     case T_DELETED:
       if (!allow_deleted)
-	fatal ("%s:%d: Node at offset %"PRINTPTRDIFFT"d is deleted.\n",
+	Pike_fatal ("%s:%d: Node at offset %"PRINTPTRDIFFT"d is deleted.\n",
 	       file, line, nodepos);
       break;
     case PIKE_T_UNKNOWN:
-      fatal ("%s:%d: Invalid node offset %"PRINTPTRDIFFT"d.\n",
+      Pike_fatal ("%s:%d: Invalid node offset %"PRINTPTRDIFFT"d.\n",
 	     file, line, nodepos);
     default:
       if (!(node->i.ind.type & MULTISET_FLAG_MARKER))
-	fatal ("%s:%d: %s", file, line, msg_no_multiset_flag_marker);
+	Pike_fatal ("%s:%d: %s", file, line, msg_no_multiset_flag_marker);
   }
 
   return node;
@@ -4183,22 +4183,22 @@ static void check_low_msnode (struct multiset_data *msd,
       node >= (msd->flags & MULTISET_INDVAL ?
 	       IVNODE (NODE_AT (msd, msnode_indval, msd->allocsize)) :
 	       INODE (NODE_AT (msd, msnode_ind, msd->allocsize))))
-    fatal ("Node outside storage for multiset.\n");
+    Pike_fatal ("Node outside storage for multiset.\n");
   if ((char *) node - (char *) msd->nodes !=
       (msd->flags & MULTISET_INDVAL ?
        (&node->iv - &msd->nodes->iv) * (ptrdiff_t) ((struct msnode_indval *) NULL + 1) :
        (&node->i - &msd->nodes->i) * (ptrdiff_t) ((struct msnode_ind *) NULL + 1)))
-    fatal ("Unaligned node in storage for multiset.\n");
+    Pike_fatal ("Unaligned node in storage for multiset.\n");
 
   switch (node->i.ind.type) {
     default:
-      if (!(exp_type & EXP_NODE_ALLOC)) fatal ("Node is in use.\n");
+      if (!(exp_type & EXP_NODE_ALLOC)) Pike_fatal ("Node is in use.\n");
       break;
     case T_DELETED:
-      if (!(exp_type & EXP_NODE_DEL)) fatal ("Node is deleted.\n");
+      if (!(exp_type & EXP_NODE_DEL)) Pike_fatal ("Node is deleted.\n");
       break;
     case PIKE_T_UNKNOWN:
-      if (!(exp_type & EXP_NODE_FREE)) fatal ("Node is free.\n");
+      if (!(exp_type & EXP_NODE_FREE)) Pike_fatal ("Node is free.\n");
       break;
   }
 }
@@ -4211,28 +4211,28 @@ void check_multiset (struct multiset *l)
   /* Check refs and multiset link list. */
 
   if (l->refs <= 0)
-    fatal ("Multiset has incorrect refs %d.\n", l->refs);
+    Pike_fatal ("Multiset has incorrect refs %d.\n", l->refs);
   if (l->node_refs < 0)
-    fatal ("Multiset has incorrect node_refs %d.\n", l->node_refs);
+    Pike_fatal ("Multiset has incorrect node_refs %d.\n", l->node_refs);
   if (!msd)
-    fatal ("Multiset has no data block.\n");
+    Pike_fatal ("Multiset has no data block.\n");
   if (msd->refs <= 0)
-    fatal ("Multiset data block has incorrect refs %d.\n", msd->refs);
+    Pike_fatal ("Multiset data block has incorrect refs %d.\n", msd->refs);
   if (msd->noval_refs < 0)
-    fatal ("Multiset data block has negative noval_refs %d.\n", msd->noval_refs);
+    Pike_fatal ("Multiset data block has negative noval_refs %d.\n", msd->noval_refs);
   if (msd->noval_refs > msd->refs)
-    fatal ("Multiset data block has more noval_refs %d than refs %d.\n",
+    Pike_fatal ("Multiset data block has more noval_refs %d than refs %d.\n",
 	   msd->noval_refs, msd->refs);
 
   if (l->next && l->next->prev != l)
-    fatal("multiset->next->prev != multiset.\n");
+    Pike_fatal("multiset->next->prev != multiset.\n");
   if (l->prev) {
     if (l->prev->next != l)
-      fatal ("multiset->prev->next != multiset.\n");
+      Pike_fatal ("multiset->prev->next != multiset.\n");
   }
   else
     if (first_multiset != l)
-      fatal ("multiset->prev == 0 but first_multiset != multiset.\n");
+      Pike_fatal ("multiset->prev == 0 but first_multiset != multiset.\n");
 
   /* Check all node pointers, the tree structure and the type hints. */
 
@@ -4272,13 +4272,13 @@ void check_multiset (struct multiset *l)
 	      check_low_msnode (msd, INODE (node->i.next),
 				EXP_NODE_ALLOC | EXP_NODE_DEL | EXP_NODE_FREE);
 	    if (node->i.prev)
-	      fatal ("Free node got garbage in prev pointer.\n");
+	      Pike_fatal ("Free node got garbage in prev pointer.\n");
 	    break;
 
 	  default:
 	    alloc++;
 	    if (!(node->i.ind.type & MULTISET_FLAG_MARKER))
-	      fatal (msg_no_multiset_flag_marker);
+	      Pike_fatal (msg_no_multiset_flag_marker);
 	    ind_types |= 1 << (node->i.ind.type & ~MULTISET_FLAG_MASK);
 	    if (indval) val_types |= 1 << node->iv.val.type;
 	    if (node->i.prev)
@@ -4298,9 +4298,9 @@ void check_multiset (struct multiset *l)
     }
 
     if (ind_types & ~msd->ind_types)
-      fatal ("Multiset indices type field lacked 0x%x.\n", ind_types & ~msd->ind_types);
+      Pike_fatal ("Multiset indices type field lacked 0x%x.\n", ind_types & ~msd->ind_types);
     if (val_types & ~msd->val_types)
-      fatal ("Multiset values type field lacked 0x%x.\n", val_types & ~msd->val_types);
+      Pike_fatal ("Multiset values type field lacked 0x%x.\n", val_types & ~msd->val_types);
   }
 
   /* Check the free list. */
@@ -4312,7 +4312,7 @@ void check_multiset (struct multiset *l)
     for (node = msd->free_list; node; node = NEXT_FREE (node)) {
       if (node->i.ind.type == PIKE_T_UNKNOWN) break;
       if (node->i.ind.type != T_DELETED)
-	fatal ("Multiset node in free list got invalid type %d.\n", node->i.ind.type);
+	Pike_fatal ("Multiset node in free list got invalid type %d.\n", node->i.ind.type);
       deleted++;
     }
 
@@ -4321,18 +4321,18 @@ void check_multiset (struct multiset *l)
       for (node = NEXT_FREE (node); node; node = NEXT_FREE (node)) {
 	free++;
 	if (node->i.ind.type == T_DELETED)
-	  fatal ("Multiset data got deleted node after free node on free list.\n");
+	  Pike_fatal ("Multiset data got deleted node after free node on free list.\n");
 	if (node->i.ind.type != PIKE_T_UNKNOWN)
-	  fatal ("Multiset node in free list got invalid type %d.\n", node->i.ind.type);
+	  Pike_fatal ("Multiset node in free list got invalid type %d.\n", node->i.ind.type);
       }
     }
 
     if (msd->size != alloc + deleted)
-      fatal ("Multiset data got size %d but tree has %d nodes and %d are deleted.\n",
+      Pike_fatal ("Multiset data got size %d but tree has %d nodes and %d are deleted.\n",
 	     msd->size, alloc, deleted);
 
     if (free != msd->allocsize - msd->size)
-      fatal ("Multiset data should have %d free nodes but got %d on free list.\n",
+      Pike_fatal ("Multiset data should have %d free nodes but got %d on free list.\n",
 	     msd->allocsize - msd->size, free);
   }
 
@@ -4372,7 +4372,7 @@ void check_multiset (struct multiset *l)
 	    nextpos = MSNODE2OFF (msd, next);
 	    INTERNAL_CMP (low_use_multiset_index (node, tmp1), &tmp2, cmp_res);
 	    if (cmp_res > 0)
-	      fatal ("Order failure in multiset data with internal order.\n");
+	      Pike_fatal ("Order failure in multiset data with internal order.\n");
 
 	    if (l->msd != msd) {
 	      msd = l->msd;
@@ -4400,7 +4400,7 @@ void check_multiset (struct multiset *l)
 	    nextpos = MSNODE2OFF (msd, next);
 	    EXTERNAL_CMP (&msd->cmp_less);
 	    if (!UNSAFE_IS_ZERO (sp - 1))
-	      fatal ("Order failure in multiset data with external order.\n");
+	      Pike_fatal ("Order failure in multiset data with external order.\n");
 	    pop_stack();
 
 	    if (l->msd != msd) {
@@ -4947,7 +4947,7 @@ void test_multiset (void)
 				 pass ? "cmp_less" : "internal", i);
       push_int (rand());
       if (!multiset_delete (l, sp - 1))
-	fatal ("Pseudo-random sequence didn't repeat.\n");
+	Pike_fatal ("Pseudo-random sequence didn't repeat.\n");
       pop_stack();
     }
 #ifdef RB_STATS
@@ -5181,7 +5181,7 @@ void test_multiset (void)
 
   pop_n_elems (2);
   if (orig_sp != sp)
-    fatal ("Stack wrong: %"PRINTPTRDIFFT"d extra elements.\n", sp - orig_sp);
+    Pike_fatal ("Stack wrong: %"PRINTPTRDIFFT"d extra elements.\n", sp - orig_sp);
   fprintf (stderr, "                            \r");
   d_flag = old_d_flag;
 }
@@ -5212,7 +5212,7 @@ void test_multiset (void)
 #include "gc.h"
 #include "security.h"
 
-RCSID("$Id: multiset.c,v 1.49 2002/05/31 22:41:25 nilsson Exp $");
+RCSID("$Id: multiset.c,v 1.50 2002/08/15 14:49:23 marcus Exp $");
 
 struct multiset *first_multiset;
 
@@ -5250,7 +5250,7 @@ PMOD_EXPORT void really_free_multiset(struct multiset *l)
 {
 #ifdef PIKE_DEBUG
   if(l->refs)
-    fatal("really free multiset on multiset with nonzero refs.\n");
+    Pike_fatal("really free multiset on multiset with nonzero refs.\n");
 #endif
 
   free_array(l->ind);
@@ -5562,12 +5562,12 @@ unsigned gc_touch_all_multisets(void)
   unsigned n = 0;
   struct multiset *l;
   if (first_multiset && first_multiset->prev)
-    fatal("Error in multiset link list.\n");
+    Pike_fatal("Error in multiset link list.\n");
   for(l=first_multiset;l;l=l->next) {
     debug_gc_touch(l);
     n++;
     if (l->next && l->next->prev != l)
-      fatal("Error in multiset link list.\n");
+      Pike_fatal("Error in multiset link list.\n");
   }
   return n;
 }
diff --git a/src/multiset.h b/src/multiset.h
index 42971192d2e7faacc734a93cb9cfe7363e24c890..6e1f8ab1bf1644efa2ca6c313c06317f42cdfcb6 100644
--- a/src/multiset.h
+++ b/src/multiset.h
@@ -7,7 +7,7 @@
  *
  * Created by Martin Stjernholm 2001-05-07
  *
- * $Id: multiset.h,v 1.24 2002/05/31 22:41:25 nilsson Exp $
+ * $Id: multiset.h,v 1.25 2002/08/15 14:49:23 marcus Exp $
  */
 
 /* #define TEST_MULTISET */
@@ -170,7 +170,7 @@ union msnode *low_multiset_find_eq (struct multiset *l, struct svalue *key);
     *_ms_index_to_ = msnode_check (NODE)->i.ind;			\
     DO_IF_DEBUG (							\
       if (!(_ms_index_to_->type & MULTISET_FLAG_MARKER))		\
-	fatal (msg_no_multiset_flag_marker);				\
+	Pike_fatal (msg_no_multiset_flag_marker);				\
     );									\
     _ms_index_to_->type &= ~MULTISET_FLAG_MASK;				\
     add_ref_svalue (_ms_index_to_);					\
@@ -185,7 +185,7 @@ union msnode *low_multiset_find_eq (struct multiset *l, struct svalue *key);
 #define low_use_multiset_index(NODE, VAR)				\
   ((VAR) = msnode_check (NODE)->i.ind,					\
    DO_IF_DEBUG ((VAR).type & MULTISET_FLAG_MARKER ? 0 :			\
-		fatal (msg_no_multiset_flag_marker) COMMA)		\
+		Pike_fatal (msg_no_multiset_flag_marker) COMMA)		\
    (VAR).type &= ~MULTISET_FLAG_MASK,					\
    &(VAR))
 
@@ -306,7 +306,7 @@ PMOD_EXPORT extern const char msg_multiset_no_node_refs[];
 #define sub_msnode_ref(L) do {						\
     struct multiset *_ms_ = (L);					\
     DO_IF_DEBUG (							\
-      if (!_ms_->node_refs) fatal (msg_multiset_no_node_refs);		\
+      if (!_ms_->node_refs) Pike_fatal (msg_multiset_no_node_refs);		\
     );									\
     if (!--_ms_->node_refs && _ms_->msd->refs == 1)			\
       multiset_clear_node_refs (_ms_);					\
@@ -439,7 +439,7 @@ void test_multiset (void);
 \*/
 
 /*
- * $Id: multiset.h,v 1.24 2002/05/31 22:41:25 nilsson Exp $
+ * $Id: multiset.h,v 1.25 2002/08/15 14:49:23 marcus Exp $
  */
 
 #include "las.h"
diff --git a/src/object.c b/src/object.c
index fd4b8876da731051b646ec93ca4a7e42b1b6d94e..113da916c104c2c6c5a7bb03a82fe9e652048229 100644
--- a/src/object.c
+++ b/src/object.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: object.c,v 1.202 2002/08/07 15:08:35 grubba Exp $");
+RCSID("$Id: object.c,v 1.203 2002/08/15 14:49:23 marcus Exp $");
 #include "object.h"
 #include "dynamic_buffer.h"
 #include "interpret.h"
@@ -182,7 +182,7 @@ PMOD_EXPORT struct object *low_clone(struct program *p)
 #ifdef DEBUG
 #define CHECK_FRAME() do { \
     if(pike_frame != Pike_fp) \
-      fatal("Frame stack out of whack.\n"); \
+      Pike_fatal("Frame stack out of whack.\n"); \
   } while(0)
 #else
 #define CHECK_FRAME()
@@ -418,7 +418,7 @@ static struct pike_string *low_read_file(char *file)
 	  check_threads_etc();
 	  continue;
 	}
-	fatal("low_read_file(%s) failed, errno=%d\n",file,errno);
+	Pike_fatal("low_read_file(%s) failed, errno=%d\n",file,errno);
       }
       pos+=tmp;
     }
@@ -573,7 +573,7 @@ PMOD_EXPORT struct object *debug_master(void)
 {
   struct object *o;
   o=get_master();
-  if(!o) fatal("Couldn't load master object.\n");
+  if(!o) Pike_fatal("Couldn't load master object.\n");
   return o;
 }
 
@@ -616,7 +616,7 @@ static void call_destroy(struct object *o, int foo)
   {
 #ifdef PIKE_DEBUG
     if(Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE)
-      fatal("Calling destroy() inside gc.\n");
+      Pike_fatal("Calling destroy() inside gc.\n");
 #endif
     if(check_destroy_called_mark_semafore(o))
     {
@@ -780,7 +780,7 @@ void low_destruct_objects_to_destruct(void)
 
 #ifdef PIKE_DEBUG
   if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE)
-    fatal("Can't meddle with the object link list in gc pass %d.\n", Pike_in_gc);
+    Pike_fatal("Can't meddle with the object link list in gc pass %d.\n", Pike_in_gc);
 #endif
 
   /* We unlink the list from objects_to_destruct before processing it,
@@ -832,9 +832,9 @@ PMOD_EXPORT void schedule_really_free_object(struct object *o)
 {
 #ifdef PIKE_DEBUG
   if (o->refs)
-    fatal("Object still got references in schedule_really_free_object().\n");
+    Pike_fatal("Object still got references in schedule_really_free_object().\n");
   if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE && o->next != o)
-    fatal("Freeing objects is not allowed inside the gc.\n");
+    Pike_fatal("Freeing objects is not allowed inside the gc.\n");
 #endif
 
   debug_malloc_touch(o);
@@ -1498,7 +1498,7 @@ PMOD_EXPORT void real_gc_cycle_check_object(struct object *o, int weak)
 #if 0
       struct object *o2;
       for (o2 = gc_internal_object; o2 && o2 != o; o2 = o2->next) {}
-      if (!o2) fatal("Object not on gc_internal_object list.\n");
+      if (!o2) Pike_fatal("Object not on gc_internal_object list.\n");
 #endif
 
       LOW_PUSH_FRAME(o);
@@ -1616,12 +1616,12 @@ unsigned gc_touch_all_objects(void)
   unsigned n = 0;
   struct object *o;
   if (first_object && first_object->prev)
-    fatal("Error in object link list.\n");
+    Pike_fatal("Error in object link list.\n");
   for (o = first_object; o; o = o->next) {
     debug_gc_touch(o);
     n++;
     if (o->next && o->next->prev != o)
-      fatal("Error in object link list.\n");
+      Pike_fatal("Error in object link list.\n");
   }
   for (o = objects_to_destruct; o; o = o->next) n++;
   return n;
@@ -1734,7 +1734,7 @@ void push_magic_index(struct program *type, int inherit_no, int parent_level)
   MAGIC_O2S(magic)->inherit = loc.inherit + inherit_no;
 #ifdef DEBUG
   if(loc.inherit + inherit_no >= loc.o->prog->inherits + loc.o->prog->num_inherit)
-     fatal("Magic index blahonga!\n");
+     Pike_fatal("Magic index blahonga!\n");
 #endif
   push_object(magic);
 }
@@ -2121,7 +2121,7 @@ void check_object_context(struct object *o,
   {
     int d=context_prog->variable_index[q];
     if(d<0 || d>=context_prog->num_identifiers)
-      fatal("Illegal index in variable_index!\n");
+      Pike_fatal("Illegal index in variable_index!\n");
 
     if(context_prog->identifiers[d].run_time_type == T_MIXED)
     {
@@ -2153,12 +2153,12 @@ void check_object(struct object *o)
     if (o->next == o)
     {
       describe(o);
-      fatal("Object check: o->next == o\n");
+      Pike_fatal("Object check: o->next == o\n");
     }
     if (o->next->prev !=o)
     {
       describe(o);
-      fatal("Object check: o->next->prev != o\n");
+      Pike_fatal("Object check: o->next->prev != o\n");
     }
   }
 
@@ -2167,28 +2167,28 @@ void check_object(struct object *o)
     if (o->prev == o)
     {
       describe(o);
-      fatal("Object check: o->prev == o\n");
+      Pike_fatal("Object check: o->prev == o\n");
     }
     if(o->prev->next != o)
     {
       describe(o);
-      fatal("Object check: o->prev->next != o\n");
+      Pike_fatal("Object check: o->prev->next != o\n");
     }
     
     if(o == first_object)
-      fatal("Object check: o->prev !=0 && first_object == o\n");
+      Pike_fatal("Object check: o->prev !=0 && first_object == o\n");
   } else {
     if(first_object != o)
-      fatal("Object check: o->prev ==0 && first_object != o\n");
+      Pike_fatal("Object check: o->prev ==0 && first_object != o\n");
   }
   
   if(o->refs <= 0)
-    fatal("Object refs <= zero.\n");
+    Pike_fatal("Object refs <= zero.\n");
 
   if(!(p=o->prog)) return;
 
   if(id_to_program(o->prog->id) != o->prog)
-    fatal("Object's program not in program list.\n");
+    Pike_fatal("Object's program not in program list.\n");
 
   if(!(o->prog->flags & PROGRAM_PASS_1_DONE)) return;
 
@@ -2212,7 +2212,7 @@ void check_all_objects(void)
 
   for(o=objects_to_destruct;o;o=o->next)
     if(o->refs)
-      fatal("Object to be destructed has references.\n");
+      Pike_fatal("Object to be destructed has references.\n");
 }
 
 #endif
diff --git a/src/object.h b/src/object.h
index b02f85dcd1d820eab88df97a73db526c3a6ceb64..f6d2e802384140342cdeeb962473c81e2e6f0044 100644
--- a/src/object.h
+++ b/src/object.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: object.h,v 1.70 2002/05/31 22:41:25 nilsson Exp $
+ * $Id: object.h,v 1.71 2002/08/15 14:49:23 marcus Exp $
  */
 #ifndef OBJECT_H
 #define OBJECT_H
@@ -130,7 +130,7 @@ void check_all_objects(void);
 #endif
 
 #ifdef PIKE_DEBUG
-#define master() ( get_master() ? get_master() : ( fatal("Couldn't load master object at %s:%d.\n",__FILE__,__LINE__), (struct object *)0) )
+#define master() ( get_master() ? get_master() : ( Pike_fatal("Couldn't load master object at %s:%d.\n",__FILE__,__LINE__), (struct object *)0) )
 #else
 #define master() debug_master()
 #endif
diff --git a/src/opcodes.c b/src/opcodes.c
index 9f62a3e33ad08be235815a5af4dbd481e51b3cd0..7aa9049ffec6ea8675d2bec3eeacedeb0eb0f32f 100644
--- a/src/opcodes.c
+++ b/src/opcodes.c
@@ -29,7 +29,7 @@
 
 #define sp Pike_sp
 
-RCSID("$Id: opcodes.c,v 1.121 2002/05/31 22:41:25 nilsson Exp $");
+RCSID("$Id: opcodes.c,v 1.122 2002/08/15 14:49:24 marcus Exp $");
 
 void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind)
 {
@@ -354,7 +354,7 @@ void o_cast_to_string(void)
 	break;
       default:
 	free_string(end_shared_string(s));
-	fatal("cast: Bad shift: %d.\n", shift);
+	Pike_fatal("cast: Bad shift: %d.\n", shift);
 	break;
       }
       s = end_shared_string(s);
@@ -640,7 +640,7 @@ void o_cast(struct pike_type *type, INT32 run_time_type)
 	  }
 #ifdef PIKE_DEBUG
 	  if(save_sp!=sp)
-	    fatal("o_cast left stack droppings.\n");
+	    Pike_fatal("o_cast left stack droppings.\n");
 #endif
 	}
 	END_CYCLIC();
@@ -718,7 +718,7 @@ void o_cast(struct pike_type *type, INT32 run_time_type)
 
 #ifdef PIKE_DEBUG
 	  if(save_sp!=sp)
-	    fatal("o_cast left stack droppings.\n");
+	    Pike_fatal("o_cast left stack droppings.\n");
 #endif
 	}
 	END_CYCLIC();
@@ -772,7 +772,7 @@ void o_cast(struct pike_type *type, INT32 run_time_type)
 	  }
 #ifdef PIKE_DEBUG
 	  if(save_sp!=sp)
-	    fatal("o_cast left stack droppings.\n");
+	    Pike_fatal("o_cast left stack droppings.\n");
 #endif
 	}
 	END_CYCLIC();
@@ -790,14 +790,14 @@ PMOD_EXPORT void f_cast(void)
 #ifdef PIKE_DEBUG
   struct svalue *save_sp=sp;
   if(sp[-2].type != T_TYPE)
-    fatal("Cast expression destroyed stack or left droppings! (Type:%d)\n",
+    Pike_fatal("Cast expression destroyed stack or left droppings! (Type:%d)\n",
 	  sp[-2].type);
 #endif
   o_cast(sp[-2].u.type,
 	 compile_type_to_runtime_type(sp[-2].u.type));
 #ifdef PIKE_DEBUG
   if(save_sp != sp)
-    fatal("Internal error: o_cast() left droppings on stack.\n");
+    Pike_fatal("Internal error: o_cast() left droppings on stack.\n");
 #endif
   free_svalue(sp-2);
   sp[-2]=sp[-1];
@@ -1196,7 +1196,7 @@ static INT32 PIKE_CONCAT4(very_low_sscanf_,INPUT_SHIFT,_,MATCH_SHIFT)(	 \
     DO_IF_DEBUG(							 \
     if(match[cnt]!='%' || match[cnt+1]=='%')				 \
     {									 \
-      fatal("Error in sscanf.\n");					 \
+      Pike_fatal("Error in sscanf.\n");					 \
     }									 \
     );									 \
 									 \
diff --git a/src/operators.c b/src/operators.c
index fd6cf6f21205c30fd77acfa57bfec2e0a3e0ea4f..9e726281b7ce371bd55e3cae2d891ce55a64f325 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -6,7 +6,7 @@
 /**/
 #include "global.h"
 #include <math.h>
-RCSID("$Id: operators.c,v 1.158 2002/08/02 03:10:17 jhs Exp $");
+RCSID("$Id: operators.c,v 1.159 2002/08/15 14:49:24 marcus Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
@@ -362,14 +362,14 @@ PMOD_EXPORT void f_add(INT32 args)
       save_sp[--e] = *(--sp);
 #ifdef PIKE_DEBUG
       if (sp != save_sp) {
-	fatal("f_add(): Lost track of stack %p != %p\n", sp, save_sp);
+	Pike_fatal("f_add(): Lost track of stack %p != %p\n", sp, save_sp);
       }
 #endif /* PIKE_DEBUG */
       /* Perform the rest of the addition. */
       f_add(-e);
 #ifdef PIKE_DEBUG
       if (sp != save_sp + 1 + e) {
-	fatal("f_add(): Lost track of stack (2) %p != %p\n",
+	Pike_fatal("f_add(): Lost track of stack (2) %p != %p\n",
 	      sp, save_sp + 1 + e);
       }
 #endif /* PIKE_DEBUG */
@@ -645,7 +645,7 @@ static node *optimize_eq(node *n)
 
 #ifdef PIKE_DEBUG
     if(!first_arg || !second_arg)
-      fatal("Couldn't find argument!\n");
+      Pike_fatal("Couldn't find argument!\n");
 #endif
     if(node_is_false(*first_arg) && !node_may_overload(*second_arg,LFUN_EQ))
     {
@@ -718,7 +718,7 @@ static node *optimize_not(node *n)
     first_arg=my_get_arg(&_CDR(n), 0);
 #ifdef PIKE_DEBUG
     if(!first_arg)
-      fatal("Couldn't find argument!\n");
+      Pike_fatal("Couldn't find argument!\n");
 #endif
     if(node_is_true(*first_arg))  return mkintnode(0);
     if(node_is_false(*first_arg)) return mkintnode(1);
@@ -781,7 +781,7 @@ static node *optimize_binary(node *n)
 
 #ifdef PIKE_DEBUG
     if(!first_arg || !second_arg)
-      fatal("Couldn't find argument!\n");
+      Pike_fatal("Couldn't find argument!\n");
 #endif
 
     if((*second_arg)->type == (*first_arg)->type &&
@@ -829,7 +829,7 @@ static int generate_comparison(node *n)
   if(count_args(CDR(n))==2)
   {
     if(do_docode(CDR(n),DO_NOT_COPY) != 2)
-      fatal("Count args was wrong in generate_comparison.\n");
+      Pike_fatal("Count args was wrong in generate_comparison.\n");
 
     if(CAR(n)->u.sval.u.efun->function == f_eq)
       emit0(F_EQ);
@@ -844,7 +844,7 @@ static int generate_comparison(node *n)
     else if(CAR(n)->u.sval.u.efun->function == f_ge)
       emit0(F_GE);
     else
-      fatal("Couldn't generate comparison!\n");
+      Pike_fatal("Couldn't generate comparison!\n");
     return 1;
   }
   return 0;
@@ -3091,7 +3091,7 @@ PMOD_EXPORT void o_range(void)
     }
 #ifdef PIKE_DEBUG
     if(from < 0 || (to-from+1) < 0)
-      fatal("Error in o_range.\n");
+      Pike_fatal("Error in o_range.\n");
 #endif
 
     s=string_slice(sp[-1].u.string, from, to-from+1);
@@ -3465,7 +3465,7 @@ static int generate_sizeof(node *n)
 {
   if(count_args(CDR(n)) != 1) return 0;
   if(do_docode(CDR(n),DO_NOT_COPY) != 1)
-    fatal("Count args was wrong in sizeof().\n");
+    Pike_fatal("Count args was wrong in sizeof().\n");
   emit0(F_SIZEOF);
   return 1;
 }
diff --git a/src/peep.c b/src/peep.c
index e0f4144f6d57e6345a60acf927fd2a915e6f63a8..635f37e8b0b66e3081ed43f451e2a45ca5b4b34b 100644
--- a/src/peep.c
+++ b/src/peep.c
@@ -19,7 +19,7 @@
 #include "interpret.h"
 #include "pikecode.h"
 
-RCSID("$Id: peep.c,v 1.71 2002/05/10 22:30:33 mast Exp $");
+RCSID("$Id: peep.c,v 1.72 2002/08/15 14:49:24 marcus Exp $");
 
 static void asm_opt(void);
 
@@ -80,7 +80,7 @@ ptrdiff_t insert_opcode2(unsigned int f,
 
 #ifdef PIKE_DEBUG
   if(!hasarg2(f) && c)
-    fatal("hasarg2(%d) is wrong!\n",f);
+    Pike_fatal("hasarg2(%d) is wrong!\n",f);
 #endif
 
   p=(p_instr *)low_make_buf_space(sizeof(p_instr), &instrbuf);
@@ -88,7 +88,7 @@ ptrdiff_t insert_opcode2(unsigned int f,
 
 #ifdef PIKE_DEBUG
   if(!instrbuf.s.len)
-    fatal("Low make buf space failed!!!!!!\n");
+    Pike_fatal("Low make buf space failed!!!!!!\n");
 #endif
 
   p->opcode=f;
@@ -107,7 +107,7 @@ ptrdiff_t insert_opcode1(unsigned int f,
 {
 #ifdef PIKE_DEBUG
   if(!hasarg(f) && b)
-    fatal("hasarg(%d) is wrong!\n",f);
+    Pike_fatal("hasarg(%d) is wrong!\n",f);
 #endif
 
   return insert_opcode2(f,b,0,current_line,current_file);
@@ -117,7 +117,7 @@ ptrdiff_t insert_opcode0(int f,int current_line, struct pike_string *current_fil
 {
 #ifdef PIKE_DEBUG
   if(hasarg(f))
-    fatal("hasarg(%d) is wrong!\n",f);
+    Pike_fatal("hasarg(%d) is wrong!\n",f);
 #endif
   return insert_opcode1(f,0,current_line, current_file);
 }
@@ -128,7 +128,7 @@ void update_arg(int instr,INT32 arg)
   p_instr *p;
 #ifdef PIKE_DEBUG
   if(instr > (long)instrbuf.s.len / (long)sizeof(p_instr) || instr < 0)
-    fatal("update_arg outside known space.\n");
+    Pike_fatal("update_arg outside known space.\n");
 #endif  
   p=(p_instr *)instrbuf.s.str;
   p[instr].arg=arg;
@@ -305,10 +305,10 @@ void assemble(void)
       if(c->arg == -1) break;
 #ifdef PIKE_DEBUG
       if(c->arg > max_label || c->arg < 0)
-	fatal("max_label calculation failed!\n");
+	Pike_fatal("max_label calculation failed!\n");
 
       if(labels[c->arg] != -1)
-	fatal("Duplicate label!\n");
+	Pike_fatal("Duplicate label!\n");
 #endif
       FLUSH_CODE_GENERATOR_STATE();
       labels[c->arg] = DO_NOT_WARN((INT32)PIKE_PC);
@@ -337,7 +337,7 @@ void assemble(void)
 
       case I_ISPOINTER:
 #ifdef PIKE_DEBUG
-	if(c->arg > max_label || c->arg < 0) fatal("Jump to unknown label?\n");
+	if(c->arg > max_label || c->arg < 0) Pike_fatal("Jump to unknown label?\n");
 #endif
 	tmp = DO_NOT_WARN((INT32)PIKE_PC);
 	ins_pointer(jumps[c->arg]);
@@ -358,7 +358,7 @@ void assemble(void)
 
 #ifdef PIKE_DEBUG
       default:
-	fatal("Unknown instruction type.\n");
+	Pike_fatal("Unknown instruction type.\n");
 #endif
       }
     }
@@ -405,7 +405,7 @@ void assemble(void)
     {
 #ifdef PIKE_DEBUG
       if(labels[e]==-1)
-	fatal("Hyperspace error: unknown jump point %ld at %d (pc=%x).\n",
+	Pike_fatal("Hyperspace error: unknown jump point %ld at %d (pc=%x).\n",
 	      PTRDIFF_T_TO_LONG(e), labels[e], jumps[e]);
 #endif
 #ifdef INS_F_JUMP
@@ -446,7 +446,7 @@ static INLINE ptrdiff_t insopt2(int f, INT32 a, INT32 b,
 
 #ifdef PIKE_DEBUG
   if(!hasarg2(f) && b)
-    fatal("hasarg2(%d /*%s */) is wrong!\n",f,get_f_name(f));
+    Pike_fatal("hasarg2(%d /*%s */) is wrong!\n",f,get_f_name(f));
 #endif
 
   p=(p_instr *)low_make_buf_space(sizeof(p_instr), &instrbuf);
@@ -459,7 +459,7 @@ static INLINE ptrdiff_t insopt2(int f, INT32 a, INT32 b,
 
 #ifdef PIKE_DEBUG
   if(!instrbuf.s.len)
-    fatal("Low make buf space failed!!!!!!\n");
+    Pike_fatal("Low make buf space failed!!!!!!\n");
 #endif
 
   p->opcode=f;
@@ -475,7 +475,7 @@ static INLINE ptrdiff_t insopt1(int f, INT32 a, int cl, struct pike_string *cf)
 {
 #ifdef PIKE_DEBUG
   if(!hasarg(f) && a)
-    fatal("hasarg(%d /* %s */) is wrong!\n",f,get_f_name(f));
+    Pike_fatal("hasarg(%d /* %s */) is wrong!\n",f,get_f_name(f));
 #endif
 
   return insopt2(f,a,0,cl, cf);
@@ -485,7 +485,7 @@ static INLINE ptrdiff_t insopt0(int f, int cl, struct pike_string *cf)
 {
 #ifdef PIKE_DEBUG
   if(hasarg(f))
-    fatal("hasarg(%d /* %s */) is wrong!\n",f,get_f_name(f));
+    Pike_fatal("hasarg(%d /* %s */) is wrong!\n",f,get_f_name(f));
 #endif
   return insopt2(f,0,0,cl, cf);
 }
@@ -496,14 +496,14 @@ static void debug(void)
     fifo_len=(long)instrbuf.s.len / (long)sizeof(p_instr);
 #ifdef PIKE_DEBUG
   if(eye < 0)
-    fatal("Popped beyond start of code.\n");
+    Pike_fatal("Popped beyond start of code.\n");
 
   if(instrbuf.s.len)
   {
     p_instr *p;
     p=(p_instr *)low_make_buf_space(0, &instrbuf);
     if(!p[-1].file)
-      fatal("No file name on last instruction!\n");
+      Pike_fatal("No file name on last instruction!\n");
   }
 #endif
 }
@@ -579,7 +579,7 @@ static void pop_n_opcodes(int n)
     if(d>fifo_len) d=fifo_len;
 #ifdef PIKE_DEBUG
     if((long)d > (long)instrbuf.s.len / (long)sizeof(p_instr))
-      fatal("Popping out of instructions.\n");
+      Pike_fatal("Popping out of instructions.\n");
 #endif
 
     /* FIXME: It looks like the fifo could be optimized.
diff --git a/src/pike_error.h b/src/pike_error.h
index 0d7983aca795eeed9d26fa892fee9107f2d5e495..bea58dff355b734594d85b8fa08e87fec0a569e5 100644
--- a/src/pike_error.h
+++ b/src/pike_error.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: pike_error.h,v 1.18 2002/05/31 22:41:25 nilsson Exp $
+ * $Id: pike_error.h,v 1.19 2002/08/15 14:49:24 marcus Exp $
  */
 #ifndef PIKE_ERROR_H
 #define PIKE_ERROR_H
@@ -21,11 +21,11 @@
 
 #if 1
 PMOD_EXPORT extern const char msg_fatal_error[];
-#define fatal \
+#define Pike_fatal \
  (fprintf(stderr,msg_fatal_error,__FILE__,__LINE__),debug_fatal)
 #else
 /* This is useful when debugging assembler code sometimes... -Hubbe */
-#define fatal \
+#define Pike_fatal \
  (fprintf(stderr,"%s: Fatal error:\n",__FILE__ ":" DEFINETOSTR(__LINE__) ),debug_fatal)
 #endif
 
@@ -94,9 +94,9 @@ PMOD_EXPORT extern const char msg_unsetjmp_nosync_2[];
                 &(X),  __FILE__, __LINE__)); \
   if(Pike_interpreter.recoveries != &X) { \
     if(Pike_interpreter.recoveries) \
-      fatal(msg_unsetjmp_nosync_1,Pike_interpreter.recoveries->file); \
+      Pike_fatal(msg_unsetjmp_nosync_1,Pike_interpreter.recoveries->file); \
     else \
-      fatal(msg_unsetjmp_nosync_2); \
+      Pike_fatal(msg_unsetjmp_nosync_2); \
     } \
     Pike_interpreter.recoveries=X.previous; \
    check_recovery_context(); \
@@ -144,11 +144,11 @@ PMOD_EXPORT extern const char msg_unset_onerr_nosync_2[];
     if(Pike_interpreter.recoveries->onerror != &(X)) { \
       fprintf(stderr,msg_last_setjmp,Pike_interpreter.recoveries->file); \
       if (Pike_interpreter.recoveries->onerror) { \
-	fatal(msg_unset_onerr_nosync_1,\
-	      Pike_interpreter.recoveries->onerror, &(X), \
-              Pike_interpreter.recoveries->onerror->file); \
+	Pike_fatal(msg_unset_onerr_nosync_1,\
+	           Pike_interpreter.recoveries->onerror, &(X), \
+                   Pike_interpreter.recoveries->onerror->file); \
       } else { \
-        fatal(msg_unset_onerr_nosync_2); \
+        Pike_fatal(msg_unset_onerr_nosync_2); \
       } \
     } \
     Pike_interpreter.recoveries->onerror=(X).previous; \
@@ -159,8 +159,8 @@ PMOD_EXPORT extern const char msg_assert_onerr[];
   do{ \
     if (!Pike_interpreter.recoveries) break; \
     if (Pike_interpreter.recoveries->onerror != &X) { \
-      fatal(msg_assert_onerr, \
-            __FILE__, __LINE__, &(X)); \
+      Pike_fatal(msg_assert_onerr, \
+                 __FILE__, __LINE__, &(X)); \
     } \
   }while(0)
 #else /* !PIKE_DEBUG */
diff --git a/src/pike_macros.h b/src/pike_macros.h
index 2551be367a676068a534733e1d098fe2cb9cb85d..f49e8bf21996e75d1b3538ed3d6aa80f895a0067 100644
--- a/src/pike_macros.h
+++ b/src/pike_macros.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: pike_macros.h,v 1.30 2002/05/31 22:41:25 nilsson Exp $
+ * $Id: pike_macros.h,v 1.31 2002/08/15 14:49:24 marcus Exp $
  */
 #ifndef MACROS_H
 #define MACROS_H
@@ -116,7 +116,7 @@
     DO_IF_DEBUG(				\
       if(first_object != o) {			\
         describe(o);                            \
-        fatal("Linked in wrong list!\n");	\
+        Pike_fatal("Linked in wrong list!\n");	\
       }                                         \
     )						\
     first_object=o->next;			\
diff --git a/src/pike_memory.c b/src/pike_memory.c
index 483dc0f364c1b1f98fb916e31bd6068b2d3ccd0b..76965a9cf06ccec130027154c7c523814ffd679f 100644
--- a/src/pike_memory.c
+++ b/src/pike_memory.c
@@ -10,7 +10,7 @@
 #include "pike_macros.h"
 #include "gc.h"
 
-RCSID("$Id: pike_memory.c,v 1.119 2002/05/31 22:41:25 nilsson Exp $");
+RCSID("$Id: pike_memory.c,v 1.120 2002/08/15 14:49:24 marcus Exp $");
 
 /* strdup() is used by several modules, so let's provide it */
 #ifndef HAVE_STRDUP
@@ -309,7 +309,7 @@ char *memory_search(struct mem_searcher *s,
   switch(s->method)
   {
     default:
-      fatal("Don't know how to search like that!\n");
+      Pike_fatal("Don't know how to search like that!\n");
   case no_search:
     return haystack;
 
@@ -449,7 +449,7 @@ void *generic_memory_search(struct generic_mem_searcher *s,
 			 haystacklen);
 
 	default:
-	  fatal("Shift size out of range!\n");
+	  Pike_fatal("Shift size out of range!\n");
       }
 
     case memchr_and_memcmp:
@@ -495,7 +495,7 @@ void *generic_memory_search(struct generic_mem_searcher *s,
       }
 
     default:
-     fatal("Wacko method!\n");
+     Pike_fatal("Wacko method!\n");
   }
   /* NOT REACHED */
   return NULL;	/* Keep the compiler happy. */
@@ -628,7 +628,7 @@ char *debug_qalloc(size_t size)
   }
 #endif
 
-  fatal("Completely out of memory!\n");
+  Pike_fatal("Completely out of memory!\n");
   /* NOT_REACHED */
   return NULL;	/* Keep the compiler happy. */
 }
@@ -1440,7 +1440,7 @@ static void remove_location(struct memhdr *mh, LOCATION location)
 
 #if !defined(__NT__) && defined(PIKE_THREADS)
   if(!mt_trylock(& debug_malloc_mutex))
-    fatal("remove_location running unlocked!\n");
+    Pike_fatal("remove_location running unlocked!\n");
 #endif
   
 #if DEBUG_MALLOC - 0 < 2
@@ -1588,7 +1588,7 @@ void *debug_malloc(size_t s, LOCATION location)
 
   /* Complain on attempts to allocate more than 128MB memory */
   if (s > (size_t)0x08000000) {
-    fatal("malloc(0x%08lx) -- Huge malloc!\n", (unsigned long)s);
+    Pike_fatal("malloc(0x%08lx) -- Huge malloc!\n", (unsigned long)s);
   }
 
   mt_lock(&debug_malloc_mutex);
diff --git a/src/pike_search.c b/src/pike_search.c
index 8af9f0ee54b12a4c755996d9b0e5f9cc01a0dfa0..e03423c699f68533e7bdc991e4cf0de0cf6aaff0 100644
--- a/src/pike_search.c
+++ b/src/pike_search.c
@@ -158,7 +158,7 @@ PMOD_EXPORT SearchMojt compile_memsearcher(PCHARP needle,
     case 2:
       return compile_memsearcher2((p_wchar2*)needle.ptr, needlelen, max_haystacklen,hashkey);
   }
-  fatal("Illegal shift\n");
+  Pike_fatal("Illegal shift\n");
 }
 
 PMOD_EXPORT SearchMojt simple_compile_memsearcher(struct pike_string *str)
diff --git a/src/pike_search_engine.c b/src/pike_search_engine.c
index 5490e25b954d80622346ea437176f817953679be..dfa27c2a983a4324b5e76b980996967b87c9553b 100644
--- a/src/pike_search_engine.c
+++ b/src/pike_search_engine.c
@@ -32,7 +32,7 @@ PCHARP PxC3(NAME,NSHIFT,N)(void *s,	\
     INTERCASE(NAME,1);				\
     INTERCASE(NAME,2);				\
   }                                             \
-  fatal("Illegal shift\n");                     \
+  Pike_fatal("Illegal shift\n");                     \
   return haystack;	/* NOT_REACHED */	\
 }						\
 						\
@@ -73,7 +73,7 @@ int NameN(init_hubbe_search)(struct hubbe_searcher *s,
 
 #ifdef PIKE_DEBUG
   if(needlelen < 7)
-    fatal("hubbe search does not work with search strings shorter than 7 characters!\n");
+    Pike_fatal("hubbe search does not work with search strings shorter than 7 characters!\n");
 #endif
   
 #ifdef TUNAFISH
@@ -166,7 +166,7 @@ void NameN(init_boyer_moore_hubbe)(struct boyer_moore_hubbe_searcher *s,
 
 #ifdef PIKE_DEBUG
   if(needlelen < 2)
-    fatal("boyer-boore-hubbe search does not work with single-character search strings!\n");
+    Pike_fatal("boyer-boore-hubbe search does not work with single-character search strings!\n");
 #endif
   
 #ifdef TUNAFISH
diff --git a/src/pike_search_engine2.c b/src/pike_search_engine2.c
index fdc8e33cda80334c78980d0a2d27e0e9832403cd..82176329abb8781032fc486fe63e2da21ff681be 100644
--- a/src/pike_search_engine2.c
+++ b/src/pike_search_engine2.c
@@ -102,7 +102,7 @@ HCHAR *NameNH(boyer_moore_hubbe)(struct boyer_moore_hubbe_searcher *s,
       
 #ifdef PIKE_DEBUG
       if(NEEDLE[j] != haystack[i])
-	fatal("T2BM failed!\n");
+	Pike_fatal("T2BM failed!\n");
 #endif
 
 #else
diff --git a/src/pike_threadlib.h b/src/pike_threadlib.h
index 15e4a15f5cfcce01eadc619c46ea128ceb61a19f..abe011642795927a683d0a229b1161f38e2b95fb 100644
--- a/src/pike_threadlib.h
+++ b/src/pike_threadlib.h
@@ -1,5 +1,5 @@
 /*
- * $Id: pike_threadlib.h,v 1.15 2002/08/13 16:59:26 grubba Exp $
+ * $Id: pike_threadlib.h,v 1.16 2002/08/15 14:49:24 marcus Exp $
  */
 #ifndef PIKE_THREADLIB_H
 #define PIKE_THREADLIB_H
@@ -388,10 +388,10 @@ extern THREAD_T debug_locking_thread;
   if (th_running) {							\
     THREAD_T self;							\
     if (!mt_trylock(&interpreter_lock))					\
-      fatal("Interpreter is not locked.\n");				\
+      Pike_fatal("Interpreter is not locked.\n");				\
     self = th_self();							\
     if (!th_equal(debug_locking_thread, self))				\
-      fatal("Interpreter is not locked by this thread.\n");		\
+      Pike_fatal("Interpreter is not locked by this thread.\n");		\
   }									\
 } while (0)
 
@@ -498,7 +498,7 @@ extern void dumpmem(char *desc, void *x, int size);
      {									      \
        dumpmem("Saved thread id: ",&self,sizeof(self));                       \
        debug_list_all_threads();					      \
-       fatal("SWAP_IN_CURRENT_THREAD FAILED!!!\n");			      \
+       Pike_fatal("SWAP_IN_CURRENT_THREAD FAILED!!!\n");			      \
      }									      \
    })									      \
    SWAP_IN_THREAD(_tmp);						      \
@@ -557,11 +557,11 @@ PMOD_EXPORT extern int Pike_in_gc;
      struct thread_state *_tmp=OBJ2THREAD(Pike_interpreter.thread_id); \
      DO_IF_DEBUG({ \
        if(thread_for_id(th_self()) != Pike_interpreter.thread_id) \
-	 fatal("thread_for_id() (or Pike_interpreter.thread_id) failed!" \
+	 Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed!" \
                " %p != %p\n", \
                thread_for_id(th_self()), Pike_interpreter.thread_id); \
        if (Pike_in_gc > 50 && Pike_in_gc < 300) \
-	 fatal("Threads allowed during garbage collection.\n"); \
+	 Pike_fatal("Threads allowed during garbage collection.\n"); \
      }) \
      if(num_threads > 1 && !threads_disabled) { \
        SWAP_OUT_THREAD(_tmp); \
@@ -573,7 +573,7 @@ PMOD_EXPORT extern int Pike_in_gc;
        DO_IF_DEBUG(							\
 	 THREAD_T self = th_self();					\
 	 if (threads_disabled && !th_equal(threads_disabled_thread, self)) \
-	   fatal("Threads allow blocked from a different thread "	\
+	   Pike_fatal("Threads allow blocked from a different thread "	\
 		 "when threads are disabled.\n");			\
        );								\
      }									\
@@ -590,14 +590,14 @@ PMOD_EXPORT extern int Pike_in_gc;
        SWAP_IN_THREAD(_tmp);\
      } \
      DO_IF_DEBUG( if(thread_for_id(th_self()) != Pike_interpreter.thread_id) \
-        fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ; ) \
+        Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ; ) \
    } while(0)
 
 #define THREADS_ALLOW_UID() do { \
      struct thread_state *_tmp_uid=OBJ2THREAD(Pike_interpreter.thread_id); \
      DO_IF_DEBUG({ \
        if(thread_for_id(th_self()) != Pike_interpreter.thread_id) { \
-	 fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n", \
+	 Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n", \
                thread_for_id(th_self()),Pike_interpreter.thread_id); \
        } \
        if ((Pike_in_gc > 50) && (Pike_in_gc < 300)) { \
@@ -624,7 +624,7 @@ PMOD_EXPORT extern int Pike_in_gc;
        DO_IF_DEBUG(							\
 	 THREAD_T self = th_self();					\
 	 if (threads_disabled && !th_equal(threads_disabled_thread, self)) \
-	   fatal("Threads allow blocked from a different thread "	\
+	   Pike_fatal("Threads allow blocked from a different thread "	\
 		 "when threads are disabled.\n");			\
        );								\
      }									\
@@ -653,7 +653,7 @@ PMOD_EXPORT extern int Pike_in_gc;
 #ifdef PIKE_DEBUG
 #define ASSERT_THREAD_SWAPPED_IN() do {				\
     struct thread_state *_tmp=thread_state_for_id(th_self());	\
-    if(_tmp->swapped) fatal("Thread is not swapped in!\n");	\
+    if(_tmp->swapped) Pike_fatal("Thread is not swapped in!\n");	\
   }while(0)
 
 #else
diff --git a/src/pike_types.c b/src/pike_types.c
index f046f571b81c69f0290033a43794bb9026025012..a20a7e2821cd0fbdaf2af775fb6d66c0bdbc15e5 100644
--- a/src/pike_types.c
+++ b/src/pike_types.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: pike_types.c,v 1.193 2002/08/14 16:27:01 grubba Exp $");
+RCSID("$Id: pike_types.c,v 1.194 2002/08/15 14:49:24 marcus Exp $");
 #include <ctype.h>
 #include "svalue.h"
 #include "pike_types.h"
@@ -294,7 +294,7 @@ void debug_free_type(struct pike_type *t)
       break;
 
     default:
-      fatal("free_type(): Unhandled type-node: %d\n", type);
+      Pike_fatal("free_type(): Unhandled type-node: %d\n", type);
       break;
 #endif /* PIKE_DEBUG */
     }
@@ -378,7 +378,7 @@ static inline struct pike_type *debug_mk_type(unsigned INT32 type,
 	break;
 
       default:
-	fatal("mk_type(): Unhandled type-node: %d\n", type);
+	Pike_fatal("mk_type(): Unhandled type-node: %d\n", type);
 	break;
 #endif /* PIKE_DEBUG */
       }
@@ -464,7 +464,7 @@ static inline struct pike_type *debug_mk_type(unsigned INT32 type,
     break;
 
   default:
-    fatal("mk_type(): Unhandled type-node: %d\n", type);
+    Pike_fatal("mk_type(): Unhandled type-node: %d\n", type);
     break;
   }
 #endif /* DEBUG_MALLOC */
@@ -493,7 +493,7 @@ ptrdiff_t pop_stack_mark(void)
 { 
   Pike_compiler->pike_type_mark_stackp--;
   if(Pike_compiler->pike_type_mark_stackp<pike_type_mark_stack)
-    fatal("Type mark stack underflow\n");
+    Pike_fatal("Type mark stack underflow\n");
 
   TYPE_STACK_DEBUG("pop_stack_mark");
 
@@ -553,7 +553,7 @@ void debug_push_assign_type(int marker)
   marker -= '0';
 #ifdef PIKE_DEBUG 
   if ((marker < 0) || (marker > 9)) {
-    fatal("Bad assign marker: %ld\n", marker);
+    Pike_fatal("Bad assign marker: %ld\n", marker);
   }
 #endif /* PIKE_DEBUG */
 
@@ -620,7 +620,7 @@ void debug_push_type(unsigned INT16 type)
   case PIKE_T_NAME:
   default:
     /* Should not occurr. */
-    fatal("Unsupported argument to push_type().\n");
+    Pike_fatal("Unsupported argument to push_type().\n");
     break;
 
   case T_FLOAT:
@@ -656,7 +656,7 @@ void debug_pop_type_stack(unsigned INT16 expected)
 { 
   struct pike_type *top;
   if(Pike_compiler->type_stackp<type_stack)
-    fatal("Type stack underflow\n");
+    Pike_fatal("Type stack underflow\n");
 
   top = *(Pike_compiler->type_stackp);
   /* Special case... */
@@ -665,7 +665,7 @@ void debug_pop_type_stack(unsigned INT16 expected)
   Pike_compiler->type_stackp--;
 #ifdef PIKE_DEBUG
   if ((top->type != expected) && (top->type != PIKE_T_NAME)) {
-    fatal("Unexpected type on stack: %d (expected %d)\n", top->type, expected);
+    Pike_fatal("Unexpected type on stack: %d (expected %d)\n", top->type, expected);
   }
 #endif /* PIKE_DEBUG */
   /* OPTIMIZE: It looks like this function is always called with
@@ -824,7 +824,7 @@ struct pike_type *debug_pop_unfinished_type(void)
   len = pop_stack_mark();
 
   if (len != 1) {
-    fatal("pop_unfinished_type(): Unexpected len: %d\n", len);
+    Pike_fatal("pop_unfinished_type(): Unexpected len: %d\n", len);
   }
 
   TYPE_STACK_DEBUG("pop_unfinished_type");
@@ -1213,13 +1213,13 @@ struct pike_type *parse_type(char *s)
   internal_parse_type(&s);
 
   if( *s )
-    fatal("Extra junk at end of type definition.\n");
+    Pike_fatal("Extra junk at end of type definition.\n");
 
   ret=pop_unfinished_type();
 
 #ifdef PIKE_DEBUG
   if(ts!=Pike_compiler->type_stackp || ptms!=Pike_compiler->pike_type_mark_stackp)
-    fatal("Type stack whacked in parse_type.\n");
+    Pike_fatal("Type stack whacked in parse_type.\n");
 #endif
 
   return ret;
@@ -2197,7 +2197,7 @@ static struct pike_type *low_match_types2(struct pike_type *a,
 
 #ifdef PIKE_DEBUG
 	if ((m < 0) || (m > 9)) {
-	  fatal("marker out of range: %d\n", m);
+	  Pike_fatal("marker out of range: %d\n", m);
 	}
 #endif /* PIKE_DEBUG */
 
@@ -2228,7 +2228,7 @@ static struct pike_type *low_match_types2(struct pike_type *a,
 #endif
 #ifdef PIKE_DEBUG
 	if((ptrdiff_t)a_markers[m]->type == m+'0')
-	  fatal("Cyclic type!\n");
+	  Pike_fatal("Cyclic type!\n");
 #endif
       }
       return ret;
@@ -2241,10 +2241,10 @@ static struct pike_type *low_match_types2(struct pike_type *a,
       {
 #ifdef PIKE_DEBUG
 	if(a_markers[m]->type == a->type)
-	  fatal("Cyclic type!\n");
+	  Pike_fatal("Cyclic type!\n");
 	if(a_markers[m]->type == T_OR &&
 	   a_markers[m]->car->type == a->type)
-	  fatal("Cyclic type!\n");
+	  Pike_fatal("Cyclic type!\n");
 #endif
 	return low_match_types(a_markers[m], b, flags);
       }
@@ -2314,7 +2314,7 @@ static struct pike_type *low_match_types2(struct pike_type *a,
 #endif
 #ifdef PIKE_DEBUG
 	if((ptrdiff_t)b_markers[m]->type == m+'0')
-	  fatal("Cyclic type!\n");
+	  Pike_fatal("Cyclic type!\n");
 #endif
       }
       return ret;
@@ -2327,7 +2327,7 @@ static struct pike_type *low_match_types2(struct pike_type *a,
       {
 #ifdef PIKE_DEBUG
 	if(b_markers[m]->type == b->type)
-	  fatal("Cyclic type!\n");
+	  Pike_fatal("Cyclic type!\n");
 #endif
 	return low_match_types(a, b_markers[m], flags);
       }
@@ -2602,7 +2602,7 @@ static struct pike_type *low_match_types2(struct pike_type *a,
     break;
 
   default:
-    fatal("Error in type string.\n");
+    Pike_fatal("Error in type string.\n");
   }
   return ret;
 }
@@ -3140,7 +3140,7 @@ static int low_pike_types_le2(struct pike_type *a, struct pike_type *b,
     break;
 
   default:
-    fatal("Error in type string.\n");
+    Pike_fatal("Error in type string.\n");
   }
   return 1;
 }
@@ -4103,7 +4103,7 @@ struct pike_type *zzap_function_return(struct pike_type *a, INT32 id)
       return pop_unfinished_type();
   }
 /* This error is bogus /Hubbe
-  fatal("zzap_function_return() called with unexpected value: %d\n",
+  Pike_fatal("zzap_function_return() called with unexpected value: %d\n",
 	EXTRACT_UCHAR(a));
 */
   return NULL;
@@ -4433,7 +4433,7 @@ static struct pike_type *debug_low_make_pike_type(unsigned char *type_string,
   case T_SCOPE:
   case T_ASSIGN:
     if ((type_string[1] < '0') || (type_string[1] > '9')) {
-      fatal("low_make_pike_type(): Bad marker: %d\n", type_string[1]);
+      Pike_fatal("low_make_pike_type(): Bad marker: %d\n", type_string[1]);
     }
     return mk_type(type, (void *)(ptrdiff_t)(type_string[1] - '0'),
 		   low_make_pike_type(type_string+2, cont), PT_COPY_CDR);
@@ -4497,7 +4497,7 @@ static struct pike_type *debug_low_make_pike_type(unsigned char *type_string,
     return mk_type(T_OBJECT, (void *)(ptrdiff_t)(type_string[1]),
 		   (void *)(ptrdiff_t)extract_type_int(type_string+2), 0);
   default:
-    fatal("compile_type_string(): Error in type string %d.\n", type);
+    Pike_fatal("compile_type_string(): Error in type string %d.\n", type);
     /* NOT_REACHED */
     break;
   }
@@ -4564,7 +4564,7 @@ int pike_type_allow_premature_toss(struct pike_type *type)
     case T_VOID:
       return 1;
   default:
-    fatal("pike_type_allow_premature_toss: Unknown type code (%d)\n",
+    Pike_fatal("pike_type_allow_premature_toss: Unknown type code (%d)\n",
 	  ((unsigned char *)type)[-1]);
     /* NOT_REACHED */
     return 0;
diff --git a/src/pike_types.h b/src/pike_types.h
index a50ade4378c0ddb879a985834e58ab2a779619a7..d7cbe8723a0c2e98331f7461a216221906af9527 100644
--- a/src/pike_types.h
+++ b/src/pike_types.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: pike_types.h,v 1.78 2002/06/25 14:26:41 grubba Exp $
+ * $Id: pike_types.h,v 1.79 2002/08/15 14:49:24 marcus Exp $
  */
 #ifndef PIKE_TYPES_H
 #define PIKE_TYPES_H
@@ -186,7 +186,7 @@ extern struct pike_type_location *all_pike_type_locations;
 #define init_type_stack() type_stack_mark()
 #define exit_type_stack() do {\
     ptrdiff_t q_q_q_q = pop_stack_mark(); \
-    if(q_q_q_q) fatal("Type stack out of wack! %ld\n", \
+    if(q_q_q_q) Pike_fatal("Type stack out of wack! %ld\n", \
                       PTRDIFF_T_TO_LONG(q_q_q_q)); \
   } while(0)
 #else
@@ -206,7 +206,7 @@ void debug_push_reverse_type(unsigned INT16 type);
 
 #define type_stack_mark() do {				\
   if(Pike_compiler->pike_type_mark_stackp >= pike_type_mark_stack + NELEM(pike_type_mark_stack))	\
-    fatal("Type mark stack overflow.");		\
+    Pike_fatal("Type mark stack overflow.");		\
   else {						\
     *Pike_compiler->pike_type_mark_stackp=Pike_compiler->type_stackp;				\
     Pike_compiler->pike_type_mark_stackp++;					\
@@ -337,7 +337,7 @@ int pike_type_allow_premature_toss(struct pike_type *type);
 } while (0)
 #define DTYPE_END(TYPESTR) do {						\
   if(Pike_compiler->type_stackp >= type_stack + sizeof(type_stack))			\
-    fatal("Type stack overflow.");					\
+    Pike_fatal("Type stack overflow.");					\
   type_stack_reverse();							\
   (TYPESTR)=pop_unfinished_type();					\
 } while (0)
diff --git a/src/port.c b/src/port.c
index 16beb58d60d61990c6d7a2f4105a8c86798a1e39..5c1fe5b68501772c60d5c293af934e8f6d635e53 100644
--- a/src/port.c
+++ b/src/port.c
@@ -22,7 +22,7 @@
 #include <float.h>
 #include <string.h>
 
-RCSID("$Id: port.c,v 1.51 2002/05/31 22:41:25 nilsson Exp $");
+RCSID("$Id: port.c,v 1.52 2002/08/15 14:49:24 marcus Exp $");
 
 #ifdef sun
 time_t time PROT((time_t *));
@@ -585,7 +585,7 @@ PMOD_EXPORT int VSPRINTF(char *buf,char *fmt,va_list args)
       goto unknown_character;
 
     case 0:
-      fatal("Error in vsprintf format.\n");
+      Pike_fatal("Error in vsprintf format.\n");
       return 0;
 
     case '%':
@@ -634,7 +634,7 @@ PMOD_EXPORT int VFPRINTF(FILE *f,char *s,va_list args)
   VSPRINTF(buffer,s,args);
   i=strlen(buffer);
   if(i+1>sizeof(buffer))
-    fatal("Buffer overflow.\n");
+    Pike_fatal("Buffer overflow.\n");
   return fwrite(buffer,i,1,f);
 }
 #endif
@@ -934,7 +934,7 @@ long long gethrtime()
 
 #ifdef PIKE_DEBUG
    if (now<hrtime_max)
-     fatal("Time calculation went backwards with %lld.\n", hrtime_max - now);
+     Pike_fatal("Time calculation went backwards with %lld.\n", hrtime_max - now);
    hrtime_max = now;
 #endif
    return now;
diff --git a/src/post_modules/GTK/source/support.c b/src/post_modules/GTK/source/support.c
index 3f43d379824c8e91aab8a085c0f0e53c24098cad..68300d17b708d9ecd5fe0e605d0806936db6d713 100644
--- a/src/post_modules/GTK/source/support.c
+++ b/src/post_modules/GTK/source/support.c
@@ -353,7 +353,7 @@ void pgtk_get_mapping_arg( struct mapping *map,
        case PIKE_T_STRING:
 #ifdef DEBUG
          if(len != sizeof(char *))
-           fatal("oddities detected\n");
+           Pike_fatal("oddities detected\n");
 #endif
          MEMCPY(((char **)dest), &s->u.string->str, sizeof(char *));
          break;
diff --git a/src/post_modules/Unicode/normalize.c b/src/post_modules/Unicode/normalize.c
index 9bd460f33dbfc0bd8f26586015c05abbcd6d6ae0..f2edb53a571f4f8888c96d219a4ae88213599dfd 100644
--- a/src/post_modules/Unicode/normalize.c
+++ b/src/post_modules/Unicode/normalize.c
@@ -1,7 +1,7 @@
 #include "global.h"
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id: normalize.c,v 1.8 2002/07/16 11:34:57 mast Exp $");
+RCSID("$Id: normalize.c,v 1.9 2002/08/15 14:50:24 marcus Exp $");
 #include "pike_macros.h"
 #include "interpret.h"
 #include "program.h"
@@ -78,7 +78,7 @@ static void init_hashes()
   unsigned int i;
 
 #ifdef PIKE_DEBUG
-  if (hashes_inited) fatal ("init_hashes called twice\n");
+  if (hashes_inited) Pike_fatal ("init_hashes called twice\n");
   hashes_inited = 1;
 #endif
 
diff --git a/src/preprocessor.h b/src/preprocessor.h
index 07fccf36096196a0a54aebb3c3242af0a733abf3..506fc0020396e6e86fd038015e382d9a3cee845d 100644
--- a/src/preprocessor.h
+++ b/src/preprocessor.h
@@ -1,5 +1,5 @@
 /*
- * $Id: preprocessor.h,v 1.50 2002/07/15 19:00:30 grubba Exp $
+ * $Id: preprocessor.h,v 1.51 2002/08/15 14:49:24 marcus Exp $
  *
  * Preprocessor template.
  * Based on cpp.c 1.45
@@ -209,7 +209,7 @@ static void PUSH_STRING_SHIFT(void *str, ptrdiff_t len, int shift,
     PUSH_STRING2((p_wchar2 *)str, len, buf);
     break;
   default:
-    fatal("cpp(): Bad string shift detected in PUSH_STRING_SHIFT(): %d\n",
+    Pike_fatal("cpp(): Bad string shift detected in PUSH_STRING_SHIFT(): %d\n",
 	  shift);
     break;
   }
@@ -1065,7 +1065,7 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 #ifdef PIKE_DEBUG
 	      if (arguments[d->parts[e].argument&DEF_ARG_MASK].arg.shift !=
 		  SHIFT) {
-		fatal("cpp(): Bad argument shift %d != %d\n", SHIFT,
+		Pike_fatal("cpp(): Bad argument shift %d != %d\n", SHIFT,
 		      arguments[d->parts[e].argument&DEF_ARG_MASK].arg.shift);
 	      }
 #endif /* PIKE_DEBUG */
@@ -1126,7 +1126,7 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 	  tmp.s->len--;
 #ifdef PIKE_DEBUG
 	  if (tmp.s->size_shift != SHIFT) {
-	    fatal("cpp(): Bad shift in #if: %d != %d\n",
+	    Pike_fatal("cpp(): Bad shift in #if: %d != %d\n",
 		  tmp.s->size_shift, SHIFT);
 	  }
 #endif /* PIKE_DEBUG */
@@ -1257,7 +1257,7 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 			   this->current_file->len,&this->buf);
 	      break;
 	    default:
-	      fatal("cpp(): Filename has bad shift %d\n",
+	      Pike_fatal("cpp(): Filename has bad shift %d\n",
 		    this->current_file->size_shift);
 	      break;
 	  }
@@ -1523,7 +1523,7 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 	  calc_2(this, (p_wchar2 *)tmp.s->str, tmp.s->len, 0);
 	  break;
 	default:
-	  fatal("cpp(): Bad shift: %d\n", tmp.s->size_shift);
+	  Pike_fatal("cpp(): Bad shift: %d\n", tmp.s->size_shift);
 	  break;
 	}
 	free_string_builder(&tmp);
@@ -1652,7 +1652,7 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 	    calc_2(this, (p_wchar2 *)tmp.s->str, tmp.s->len,0);
 	    break;
 	  default:
-	    fatal("cpp(): Bad shift: %d\n", tmp.s->size_shift);
+	    Pike_fatal("cpp(): Bad shift: %d\n", tmp.s->size_shift);
 	    break;
 	  }
 	  free_string_builder(&tmp);
@@ -1828,7 +1828,7 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 		{
 #ifdef PIKE_DEBUG
 		  if(Pike_sp[-1].type != PIKE_T_INT)
-		    fatal("Internal error in CPP\n");
+		    Pike_fatal("Internal error in CPP\n");
 #endif
 		  Pike_sp[-1].u.integer|=DEF_ARG_NOPOSTSPACE;
 		}
@@ -1931,10 +1931,10 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 	    {
 #ifdef PIKE_DEBUG
 	      if(partbase[e*2+1].type != PIKE_T_INT)
-		fatal("Cpp internal error, expected integer!\n");
+		Pike_fatal("Cpp internal error, expected integer!\n");
 	      
 	      if(partbase[e*2+2].type != PIKE_T_STRING)
-		fatal("Cpp internal error, expected string!\n");
+		Pike_fatal("Cpp internal error, expected string!\n");
 #endif
 	      def->parts[e].argument=partbase[e*2+1].u.integer;
 	      copy_shared_string(def->parts[e].postfix,
@@ -1944,7 +1944,7 @@ static ptrdiff_t lower_cpp(struct cpp *this,
 #ifdef PIKE_DEBUG
 	    if(def->num_parts==1 &&
 	       (def->parts[0].argument & DEF_ARG_MASK) > MAX_ARGS)
-	      fatal("Internal error in define\n");
+	      Pike_fatal("Internal error in define\n");
 #endif	  
 	    {
 	      struct define *d;
diff --git a/src/program.c b/src/program.c
index 9340c6cba2c566937b277e4e6f9bb065c8bd404d..9064418941a3e4cc12845dc79d5071131419b14f 100644
--- a/src/program.c
+++ b/src/program.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: program.c,v 1.440 2002/07/23 12:58:45 mast Exp $");
+RCSID("$Id: program.c,v 1.441 2002/08/15 14:49:25 marcus Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -772,9 +772,9 @@ int get_small_number(char **q);
 #ifdef PIKE_DEBUG
 #define CHECK_FOO(NUMTYPE,TYPE,NAME)				\
   if(Pike_compiler->malloc_size_program-> PIKE_CONCAT(num_,NAME) < Pike_compiler->new_program-> PIKE_CONCAT(num_,NAME))	\
-    fatal("Pike_compiler->new_program->num_" #NAME " is out of order\n");	\
+    Pike_fatal("Pike_compiler->new_program->num_" #NAME " is out of order\n");	\
   if(Pike_compiler->new_program->flags & PROGRAM_OPTIMIZED)			\
-    fatal("Tried to reallocate fixed program.\n")
+    Pike_fatal("Tried to reallocate fixed program.\n")
 
 #else
 #define CHECK_FOO(NUMTYPE,TYPE,NAME)
@@ -805,7 +805,7 @@ void PIKE_CONCAT(low_add_to_,NAME) (struct program_state *state,	\
 		  sizeof(TYPE) *					\
 		  state->malloc_size_program->				\
                   PIKE_CONCAT(num_,NAME));				\
-    if(!tmp) fatal("Out of memory.\n");					\
+    if(!tmp) Pike_fatal("Out of memory.\n");					\
     PIKE_CONCAT(RELOCATE_,NAME)(state->new_program, tmp);		\
     state->new_program->NAME=tmp;					\
   }									\
@@ -847,7 +847,7 @@ static void debug_add_to_identifiers (struct identifier id)
     for (i = 0; i < Pike_compiler->new_program->num_identifiers; i++)
       if (Pike_compiler->new_program->identifiers[i].name == id.name) {
 	dump_program_tables (Pike_compiler->new_program, 0);
-	fatal ("Adding identifier twice, old at %d.\n", i);
+	Pike_fatal ("Adding identifier twice, old at %d.\n", i);
       }
   }
   add_to_identifiers (id);
@@ -885,7 +885,7 @@ void unuse_modules(INT32 howmany)
   if(!howmany) return;
 #ifdef PIKE_DEBUG
   if(howmany *sizeof(struct svalue) > used_modules.s.len)
-    fatal("Unusing too many modules.\n");
+    Pike_fatal("Unusing too many modules.\n");
 #endif
   Pike_compiler->num_used_modules-=howmany;
   low_make_buf_space(-sizeof(struct svalue)*howmany, &used_modules);
@@ -1010,7 +1010,7 @@ struct node_s *find_module_identifier(struct pike_string *ident,
       modules-=p->num_used_modules;
 #ifdef PIKE_DEBUG
       if( ((char *)modules ) < used_modules.s.str)
-	fatal("Modules out of whack!\n");
+	Pike_fatal("Modules out of whack!\n");
 #endif
     }
   }
@@ -1364,7 +1364,7 @@ void fixate_program(void)
   if(p->flags & PROGRAM_FIXED) return;
 #ifdef PIKE_DEBUG
   if(p->flags & PROGRAM_OPTIMIZED)
-    fatal("Cannot fixate optimized program\n");
+    Pike_fatal("Cannot fixate optimized program\n");
 #endif
 
   /* Ok, sort for binsearch */
@@ -1567,7 +1567,7 @@ void low_start_new_program(struct program *p,
   if (!node_hash.table) {
     node_hash.table = malloc(sizeof(node *)*32831);
     if (!node_hash.table) {
-      fatal("Out of memory!\n");
+      Pike_fatal("Out of memory!\n");
     }
     MEMSET(node_hash.table, 0, sizeof(node *)*32831);
     node_hash.size = 32831;
@@ -1609,7 +1609,7 @@ void low_start_new_program(struct program *p,
       struct identifier *i;
       id=isidentifier(name);
       if (id < 0)
-	fatal("Program constant disappeared in second pass.\n");
+	Pike_fatal("Program constant disappeared in second pass.\n");
       i=ID_FROM_INT(Pike_compiler->new_program, id);
       free_type(i->type);
       i->type=get_type_of_svalue(&tmp);
@@ -2135,31 +2135,31 @@ void check_program(struct program *p)
     variable_positions[e]=-1;
 
   if(p->id > current_program_id)
-    fatal("Program id is out of sync! (p->id=%d, current_program_id=%d)\n",p->id,current_program_id);
+    Pike_fatal("Program id is out of sync! (p->id=%d, current_program_id=%d)\n",p->id,current_program_id);
 
   if(p->refs <=0)
-    fatal("Program has zero refs.\n");
+    Pike_fatal("Program has zero refs.\n");
 
   if(p->next && p->next->prev != p)
-    fatal("Program ->next->prev != program.\n");
+    Pike_fatal("Program ->next->prev != program.\n");
 
   if(p->prev)
   {
     if(p->prev->next != p)
-      fatal("Program ->prev->next != program.\n");
+      Pike_fatal("Program ->prev->next != program.\n");
   }else{
     if(first_program != p)
-      fatal("Program ->prev == 0 but first_program != program.\n");
+      Pike_fatal("Program ->prev == 0 but first_program != program.\n");
   }
 
   if(p->id > current_program_id || p->id <= 0)
-    fatal("Program id is wrong.\n");
+    Pike_fatal("Program id is wrong.\n");
 
   if(p->storage_needed < 0)
-    fatal("Program->storage_needed < 0.\n");
+    Pike_fatal("Program->storage_needed < 0.\n");
 
   if(p->num_identifier_index > p->num_identifier_references)
-    fatal("Too many identifier index entries in program!\n");
+    Pike_fatal("Too many identifier index entries in program!\n");
 
   for(e=0;e<p->num_constants;e++)
   {
@@ -2179,25 +2179,25 @@ void check_program(struct program *p)
     }
 
     if(p->inherits[e].storage_offset < 0)
-      fatal("Inherit->storage_offset is wrong.\n");
+      Pike_fatal("Inherit->storage_offset is wrong.\n");
 
     if(p->inherits[e].prog &&
        p->inherits[e].storage_offset + STORAGE_NEEDED(p->inherits[e].prog) >
        p->storage_needed)
-      fatal("Not enough room allocated by inherit!\n");
+      Pike_fatal("Not enough room allocated by inherit!\n");
 
     if(e)
     {
       if(p->inherits[e-1].storage_offset >
 	 p->inherits[e].storage_offset)
-	fatal("Overlapping inherits! (1)\n");
+	Pike_fatal("Overlapping inherits! (1)\n");
 
       if(p->inherits[e-1].prog &&
 	 p->inherits[e-1].inherit_level >= p->inherits[e].inherit_level &&
 	 ( p->inherits[e-1].storage_offset +
 	   STORAGE_NEEDED(p->inherits[e-1].prog)) >
 	 p->inherits[e].storage_offset)
-	fatal("Overlapping inherits! (3)\n");
+	Pike_fatal("Overlapping inherits! (3)\n");
     }
   }
 
@@ -2209,7 +2209,7 @@ void check_program(struct program *p)
     check_type_string(p->identifiers[e].type);
 
     if(p->identifiers[e].identifier_flags & ~IDENTIFIER_MASK)
-      fatal("Unknown flags in identifier flag field.\n");
+      Pike_fatal("Unknown flags in identifier flag field.\n");
 
     if(p->identifiers[e].run_time_type!=T_MIXED)
       check_type(p->identifiers[e].run_time_type);
@@ -2219,7 +2219,7 @@ void check_program(struct program *p)
       if( (p->identifiers[e].func.offset /* + OFFSETOF(object,storage)*/ ) &
 	 (alignof_variable(p->identifiers[e].run_time_type)-1))
       {
-	fatal("Variable %s offset is not properly aligned (%ld).\n",
+	Pike_fatal("Variable %s offset is not properly aligned (%ld).\n",
 	      p->identifiers[e].name->str,
 	      PTRDIFF_T_TO_LONG(p->identifiers[e].func.offset));
       }
@@ -2230,19 +2230,19 @@ void check_program(struct program *p)
   {
     struct identifier *i;
     if(p->identifier_references[e].inherit_offset > p->num_inherits)
-      fatal("Inherit offset is wrong!\n");
+      Pike_fatal("Inherit offset is wrong!\n");
 
     if(!p->inherits[p->identifier_references[e].inherit_offset].prog)
     {
       if(!(p->flags & PROGRAM_FINISHED))
 	continue;
 
-      fatal("p->inherit[%d].prog = NULL!\n",p->identifier_references[e].inherit_offset);
+      Pike_fatal("p->inherit[%d].prog = NULL!\n",p->identifier_references[e].inherit_offset);
     }
 
     if(p->identifier_references[e].identifier_offset >
        p->inherits[p->identifier_references[e].inherit_offset].prog->num_identifiers)
-      fatal("Identifier offset %d is wrong! %d > %d\n",
+      Pike_fatal("Identifier offset %d is wrong! %d > %d\n",
 	    e,
 	    p->identifier_references[e].identifier_offset,
 	    p->inherits[p->identifier_references[e].inherit_offset].prog->num_identifiers);
@@ -2257,7 +2257,7 @@ void check_program(struct program *p)
       size=sizeof_variable(i->run_time_type);
 
       if((offset+size > (size_t)p->storage_needed) || offset<0)
-	fatal("Variable outside storage! (%s)\n",i->name->str);
+	Pike_fatal("Variable outside storage! (%s)\n",i->name->str);
 
       for(q=0;q<size;q++)
       {
@@ -2280,7 +2280,7 @@ void check_program(struct program *p)
 						 )->run_time_type),
 		    get_name_of_type(i->run_time_type));
 	    if (i->name) {
-	      fatal("Variable '%s' and '%s' overlap\n"
+	      Pike_fatal("Variable '%s' and '%s' overlap\n"
 		    "Offset 0x%08x - 0x%08x overlaps with 0x%08x - 0x%08x\n",
 		    ID_FROM_INT(p, variable_positions[offset+q])->name->str,
 		    i->name->str,
@@ -2294,7 +2294,7 @@ void check_program(struct program *p)
 						)->run_time_type)-1,
 		    offset, offset+size-1);
 	    } else {
-	      fatal("Variable '%s' and anonymous variable (%d) overlap\n"
+	      Pike_fatal("Variable '%s' and anonymous variable (%d) overlap\n"
 		    "Offset 0x%08x - 0x%08x overlaps with 0x%08x - 0x%08x\n",
 		    ID_FROM_INT(p, variable_positions[offset+q])->name->str,
 		    e,
@@ -2318,7 +2318,7 @@ void check_program(struct program *p)
   for(e=0;e<p->num_identifier_index;e++)
   {
     if(p->identifier_index[e] > p->num_identifier_references)
-      fatal("Program->identifier_indexes[%ld] is wrong\n",(long)e);
+      Pike_fatal("Program->identifier_indexes[%ld] is wrong\n",(long)e);
   }
 
 }
@@ -2494,7 +2494,7 @@ PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment,
 
 #ifdef PIKE_DEBUG
   if(alignment <=0 || (alignment & (alignment-1)) || alignment > 256)
-    fatal("Alignment must be 1,2,4,8,16,32,64,128 or 256 not %ld\n",
+    Pike_fatal("Alignment must be 1,2,4,8,16,32,64,128 or 256 not %ld\n",
 	  PTRDIFF_T_TO_LONG(alignment));
 #endif
   modulo=( modulo_orig /* +OFFSETOF(object,storage) */ ) % alignment;
@@ -2529,10 +2529,10 @@ PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment,
 
 #ifdef PIKE_DEBUG
   if(offset < Pike_compiler->new_program->storage_needed)
-    fatal("add_storage failed horribly!\n");
+    Pike_fatal("add_storage failed horribly!\n");
 
   if( (offset /* + OFFSETOF(object,storage) */ - modulo_orig ) % alignment )
-    fatal("add_storage failed horribly(2) %ld %ld %ld %ld!\n",
+    Pike_fatal("add_storage failed horribly(2) %ld %ld %ld %ld!\n",
 	  DO_NOT_WARN((long)offset),
 	  (long)0 /* + OFFSETOF(object,storage) */,
 	  DO_NOT_WARN((long)modulo_orig),
@@ -2677,7 +2677,7 @@ void pike_set_prog_event_callback(void (*cb)(int))
 {
 #ifdef PIKE_DEBUG
   if(Pike_compiler->new_program->event_handler)
-    fatal("Program already has an event handler!\n");
+    Pike_fatal("Program already has an event handler!\n");
 #endif
   Pike_compiler->new_program->event_handler=cb;
 }
@@ -2686,7 +2686,7 @@ void pike_set_prog_optimize_callback(node *(*opt)(node *))
 {
 #ifdef PIKE_DEBUG
   if(Pike_compiler->new_program->optimize)
-    fatal("Program already has an optimize handler!\n");
+    Pike_fatal("Program already has an optimize handler!\n");
 #endif
   Pike_compiler->new_program->optimize = opt;
 }
@@ -2766,7 +2766,7 @@ node *reference_inherited_identifier(struct pike_string *super_name,
 
 #ifdef PIKE_DEBUG
   if(function_name!=debug_findstring(function_name))
-    fatal("reference_inherited_function on nonshared string.\n");
+    Pike_fatal("reference_inherited_function on nonshared string.\n");
 #endif
 
   p=Pike_compiler->new_program;
@@ -2973,7 +2973,7 @@ void low_inherit(struct program *p,
 
 #ifdef PIKE_DEBUG
   if (p == placeholder_program)
-    fatal("Trying to inherit placeholder_program.\n");
+    Pike_fatal("Trying to inherit placeholder_program.\n");
 #endif
 
   if(p->flags & PROGRAM_NEEDS_PARENT)
@@ -3039,7 +3039,7 @@ void low_inherit(struct program *p,
 	  for(o=Pike_compiler->fake_object;o!=parent;o=o->parent)
 	  {
 #ifdef PIKE_DEBUG
-	    if(!o) fatal("low_inherit with odd Pike_compiler->fake_object as parent!\n");
+	    if(!o) Pike_fatal("low_inherit with odd Pike_compiler->fake_object as parent!\n");
 #endif
 	    inherit.parent_offset++;
 	  }
@@ -3050,7 +3050,7 @@ void low_inherit(struct program *p,
 	  {
 #ifdef PIKE_DEBUG
 	    if(!state->fake_object)
-	      fatal("low_inherit with odd Pike_compiler->fake_object as parent!\n");
+	      Pike_fatal("low_inherit with odd Pike_compiler->fake_object as parent!\n");
 #endif
 	    inherit.parent_offset++;
 	  }
@@ -3346,10 +3346,10 @@ int low_define_variable(struct pike_string *name,
 
 #ifdef PIKE_DEBUG
   if(Pike_compiler->new_program->flags & (PROGRAM_FIXED | PROGRAM_OPTIMIZED))
-    fatal("Attempting to add variable to fixed program\n");
+    Pike_fatal("Attempting to add variable to fixed program\n");
 
   if(Pike_compiler->compiler_pass==2)
-    fatal("Internal error: Not allowed to add more identifiers during second compiler pass.\n"
+    Pike_fatal("Internal error: Not allowed to add more identifiers during second compiler pass.\n"
 	  "Added identifier: \"%s\"\n", name->str);
 #endif
 
@@ -3447,7 +3447,7 @@ int define_variable(struct pike_string *name,
 
 #ifdef PIKE_DEBUG
   if(name!=debug_findstring(name))
-    fatal("define_variable on nonshared string.\n");
+    Pike_fatal("define_variable on nonshared string.\n");
 #endif
 
 #ifdef PROGRAM_BUILD_DEBUG
@@ -3481,7 +3481,7 @@ int define_variable(struct pike_string *name,
 
 #ifdef PIKE_DEBUG
   if(Pike_compiler->new_program->flags & (PROGRAM_FIXED | PROGRAM_OPTIMIZED))
-    fatal("Attempting to add variable to fixed program\n");
+    Pike_fatal("Attempting to add variable to fixed program\n");
 #endif
 
   if(n != -1)
@@ -3647,7 +3647,7 @@ PMOD_EXPORT int add_constant(struct pike_string *name,
 
 #ifdef PIKE_DEBUG
   if(name!=debug_findstring(name))
-    fatal("define_constant on nonshared string.\n");
+    Pike_fatal("define_constant on nonshared string.\n");
 #endif
 
   do {
@@ -3727,7 +3727,7 @@ PMOD_EXPORT int add_constant(struct pike_string *name,
       else {
 #if 0
 #ifdef PIKE_DEBUG
-	if (!c) fatal("Can't declare constant during second compiler pass\n");
+	if (!c) Pike_fatal("Can't declare constant during second compiler pass\n");
 #endif
 #endif
 	free_type(id->type);
@@ -3747,10 +3747,10 @@ PMOD_EXPORT int add_constant(struct pike_string *name,
 
 #ifdef PIKE_DEBUG
   if(Pike_compiler->new_program->flags & (PROGRAM_FIXED | PROGRAM_OPTIMIZED))
-    fatal("Attempting to add constant to fixed program\n");
+    Pike_fatal("Attempting to add constant to fixed program\n");
 
   if(Pike_compiler->compiler_pass==2)
-    fatal("Internal error: Not allowed to add more identifiers during second compiler pass.\n");
+    Pike_fatal("Internal error: Not allowed to add more identifiers during second compiler pass.\n");
 #endif
 
   copy_shared_string(dummy.name, name);
@@ -3813,7 +3813,7 @@ PMOD_EXPORT int add_constant(struct pike_string *name,
     if ((overridden = override_identifier (&ref, name)) >= 0) {
 #ifdef PIKE_DEBUG
       if(MEMCMP(Pike_compiler->new_program->identifier_references+n, &ref,sizeof(ref)))
-	fatal("New constant overriding algorithm failed!\n");
+	Pike_fatal("New constant overriding algorithm failed!\n");
 #endif
       return overridden;
     }
@@ -3940,7 +3940,7 @@ PMOD_EXPORT int debug_end_class(char *name, ptrdiff_t namelen, INT32 flags)
   tmp.subtype=0;
   tmp.u.program=end_program();
   if(!tmp.u.program)
-    fatal("Failed to initialize class '%s'\n",name);
+    Pike_fatal("Failed to initialize class '%s'\n",name);
 
   id=make_shared_binary_string(name,namelen);
   ret=add_constant(id, &tmp, flags);
@@ -3987,7 +3987,7 @@ INT32 define_function(struct pike_string *name,
   if ((lfun_type = low_mapping_string_lookup(lfun_types, name))) {
 #ifdef PIKE_DEBUG
     if (lfun_type->type != T_TYPE) {
-      fatal("Bad entry in lfun_types for key \"%s\"\n", name->str);
+      Pike_fatal("Bad entry in lfun_types for key \"%s\"\n", name->str);
     }
 #endif /* PIKE_DEBUG */
     if (!pike_types_le(type, lfun_type->u.type)) {
@@ -4116,7 +4116,7 @@ INT32 define_function(struct pike_string *name,
     if ((overridden = override_identifier (&ref, name)) >= 0) {
 #ifdef PIKE_DEBUG
       if(MEMCMP(Pike_compiler->new_program->identifier_references+i, &ref,sizeof(ref)))
-	fatal("New function overloading algorithm failed!\n");
+	Pike_fatal("New function overloading algorithm failed!\n");
 #endif
       return overridden;
     }
@@ -4125,7 +4125,7 @@ make_a_new_def:
 
 #ifdef PIKE_DEBUG
   if(Pike_compiler->compiler_pass==2)
-    fatal("Internal error: Not allowed to add more identifiers during second compiler pass.\n");
+    Pike_fatal("Internal error: Not allowed to add more identifiers during second compiler pass.\n");
 #endif
 
   /* define a new function */
@@ -4232,7 +4232,7 @@ int really_low_find_shared_string_identifier(struct pike_string *name,
 
 #ifdef PIKE_DEBUG
   if (!prog) {
-    fatal("really_low_find_shared_string_identifier(\"%s\", NULL, %d)\n"
+    Pike_fatal("really_low_find_shared_string_identifier(\"%s\", NULL, %d)\n"
 	  "prog is NULL!\n", name->str, flags);
   }
 #endif /* PIKE_DEBUG */
@@ -4321,7 +4321,7 @@ int low_find_shared_string_identifier(struct pike_string *name,
 
 #ifdef PIKE_DEBUG
     if(!funindex)
-      fatal("No funindex in fixed program\n");
+      Pike_fatal("No funindex in fixed program\n");
 #endif
 
     max = prog->num_identifier_index;
@@ -4364,7 +4364,7 @@ int find_shared_string_identifier(struct pike_string *name,
 {
 #ifdef PIKE_DEBUG
   if (!prog) {
-    fatal("find_shared_string_identifier(): No program!\n"
+    Pike_fatal("find_shared_string_identifier(): No program!\n"
 	  "Identifier: %s%s%s\n",
 	  name?"\"":"", name?name->str:"NULL", name?"\"":"");
   }
@@ -4624,7 +4624,7 @@ int get_small_number(char **q)
 
 #ifdef PIKE_DEBUG
   case 127:
-    fatal("get_small_number used on filename entry\n");
+    Pike_fatal("get_small_number used on filename entry\n");
 #endif
   }
   *q = (char *)addr;
@@ -4668,7 +4668,7 @@ static void insert_small_number(INT32 a)
       tmp = Pike_compiler->new_program->linenumbers + start;
       fprintf(stderr, "0x%p: %02x %02x %02x %02x %02x\n",
 	      tmp, tmp[0], tmp[1], tmp[2], tmp[3], tmp[4]);	      
-      fatal("insert_small_number failed: %d (0x%08x) != %d (0x%08x)\n",
+      Pike_fatal("insert_small_number failed: %d (0x%08x) != %d (0x%08x)\n",
 	    a, a, res, res);
     }
   }
@@ -4677,7 +4677,7 @@ static void insert_small_number(INT32 a)
 
 void store_linenumber(INT32 current_line, struct pike_string *current_file)
 {
-/*  if(!store_linenumbers)  fatal("Fnord.\n"); */
+/*  if(!store_linenumbers)  Pike_fatal("Fnord.\n"); */
 #ifdef PIKE_DEBUG
   if(a_flag)
   {
@@ -4731,7 +4731,7 @@ void store_linenumber(INT32 current_line, struct pike_string *current_file)
        (Pike_compiler->last_file && file &&
 	memcmp(Pike_compiler->last_file->str, file, len<<shift)))
     {
-      fatal("Line numbering out of whack\n"
+      Pike_fatal("Line numbering out of whack\n"
 	    "    (line : %d ?= %d)!\n"
 	    "    (  pc : %d ?= %d)!\n"
 	    "    (shift: %d ?= %d)!\n"
@@ -4967,7 +4967,7 @@ void my_yyerror(char *fmt,...)  ATTRIBUTE((format(printf,1,2)))
 #endif /* HAVE_VSNPRINTF */
 
   if((size_t)strlen(buf) >= (size_t)sizeof(buf))
-    fatal("Buffer overflow in my_yyerror.\n");
+    Pike_fatal("Buffer overflow in my_yyerror.\n");
 
   yyerror(buf);
   va_end(args);
@@ -5009,7 +5009,7 @@ extern void yyparse(void);
   struct svalue *save_sp=Pike_sp;			\
   yyparse();  /* Parse da program */			\
   if(save_sp != Pike_sp)				\
-    fatal("yyparse() left %"PRINTPTRDIFFT"d droppings on the stack!\n",	\
+    Pike_fatal("yyparse() left %"PRINTPTRDIFFT"d droppings on the stack!\n",	\
 	  Pike_sp - save_sp);						\
 }while(0)
 #else
@@ -5058,7 +5058,7 @@ static void mark_supporters(struct Supporter *s)
 #ifdef DEBUG_MALLOC
     describe(s);
 #endif
-    fatal("This is not a supporter (addr=%p, magic=%x)!\n",s,s->magic);
+    Pike_fatal("This is not a supporter (addr=%p, magic=%x)!\n",s,s->magic);
   }
 
   mark_supporters(s->dependants);
@@ -5093,16 +5093,16 @@ static void low_verify_supporters(struct Supporter *s)
 #endif
 
   if(s->previous && SNUM(s->previous) <= m->level)
-    fatal("Que, numbers out of whack1\n");
+    Pike_fatal("Que, numbers out of whack1\n");
 
   if(s->depends_on && SNUM(s->depends_on) <= m->level)
-    fatal("Que, numbers out of whack2\n");
+    Pike_fatal("Que, numbers out of whack2\n");
 
   for(ss=s->dependants;ss;ss=ss->next_dependant) {
     if (ss->depends_on != s)
-      fatal("Dependant hasn't got depends_on set properly.\n");
+      Pike_fatal("Dependant hasn't got depends_on set properly.\n");
     if(SNUM(ss) >= m->level)
-      fatal("Que, numbers out of whack3\n");
+      Pike_fatal("Que, numbers out of whack3\n");
   }
 
   low_verify_supporters(s->previous);
@@ -5167,7 +5167,7 @@ int unlink_current_supporter(struct Supporter *c)
   int ret=0;
 #ifdef PIKE_DEBUG
   if(c != current_supporter)
-    fatal("Previous unlink failed.\n");
+    Pike_fatal("Previous unlink failed.\n");
 #endif
   debug_malloc_touch(c);
   verify_supporters();
@@ -5176,7 +5176,7 @@ int unlink_current_supporter(struct Supporter *c)
 #ifdef PIKE_DEBUG
     struct Supporter *s;
     for (s = c->depends_on->dependants; s; s = s->next_dependant)
-      if (s == c) fatal("Dependant already linked in.\n");
+      if (s == c) Pike_fatal("Dependant already linked in.\n");
 #endif
     ret++;
     c->next_dependant = c->depends_on->dependants;
@@ -5322,7 +5322,7 @@ static void run_init(struct compilation *c)
     case 1: lex.current_lexer = yylex1; break;
     case 2: lex.current_lexer = yylex2; break;
     default:
-      fatal("Program has bad shift %d!\n", c->prog->size_shift);
+      Pike_fatal("Program has bad shift %d!\n", c->prog->size_shift);
       break;
   }
 
@@ -5352,7 +5352,7 @@ static void run_exit(struct compilation *c)
 
 #ifdef PIKE_DEBUG
   if(Pike_compiler->num_used_modules)
-    fatal("Failed to pop modules properly.\n");
+    Pike_fatal("Failed to pop modules properly.\n");
 #endif
   Pike_compiler->num_used_modules = c->num_used_modules_save ;
 
@@ -5486,7 +5486,7 @@ static int run_pass1(struct compilation *c)
     } else {
 #ifdef PIKE_DEBUG
       if (c->placeholder->prog != c->p)
-	fatal("Placeholder object got wrong program after first pass.\n");
+	Pike_fatal("Placeholder object got wrong program after first pass.\n");
 #endif
       debug_malloc_touch(c->placeholder);
       c->placeholder->storage=c->p->storage_needed ?
@@ -5540,7 +5540,7 @@ static void run_cleanup(struct compilation *c, int delayed)
   debug_malloc_touch(c->placeholder);
 #if 0 /* FIXME */
   if (threads_disabled != c->saved_threads_disabled) {
-    fatal("compile(): threads_disabled:%d saved_threads_disabled:%d\n",
+    Pike_fatal("compile(): threads_disabled:%d saved_threads_disabled:%d\n",
 	  threads_disabled, c->saved_threads_disabled);
   }
 #endif /* PIKE_DEBUG */
@@ -5606,7 +5606,7 @@ static void run_cleanup(struct compilation *c, int delayed)
 	/* Initialize the placeholder. */
 #ifdef PIKE_DEBUG
 	if (c->placeholder->prog != c->p)
-	  fatal("Placeholder object got wrong program after second pass.\n");
+	  Pike_fatal("Placeholder object got wrong program after second pass.\n");
 #endif
 	if(SETJMP(rec))
 	{
@@ -5649,7 +5649,7 @@ static int call_delayed_pass2(struct compilation *cc, int finish)
 
 #ifdef PIKE_DEBUG
   if(cc->supporter.dependants)
-    fatal("Que???\n");
+    Pike_fatal("Que???\n");
 #endif
   if(cc->p) {
     ok = finish;
@@ -5857,10 +5857,10 @@ void check_all_programs(void)
       {
 	check_string(cache[e].name);
 	if(cache[e].id<0 || cache[e].id > current_program_id)
-	  fatal("Error in find_function_cache[%ld].id\n",(long)e);
+	  Pike_fatal("Error in find_function_cache[%ld].id\n",(long)e);
 
 	if(cache[e].fun < -1 || cache[e].fun > 65536)
-	  fatal("Error in find_function_cache[%ld].fun\n",(long)e);
+	  Pike_fatal("Error in find_function_cache[%ld].fun\n",(long)e);
       }
     }
   }
@@ -6233,12 +6233,12 @@ unsigned gc_touch_all_programs(void)
   struct program *p;
   struct program_state *ps;
   if (first_program && first_program->prev)
-    fatal("Error in program link list.\n");
+    Pike_fatal("Error in program link list.\n");
   for (p = first_program; p; p = p->next) {
     debug_gc_touch(p);
     n++;
     if (p->next && p->next->prev != p)
-      fatal("Error in program link list.\n");
+      Pike_fatal("Error in program link list.\n");
   }
   return n;
 }
@@ -6341,7 +6341,7 @@ void gc_free_all_unreferenced_programs(void)
     for (p = first_program; p != gc_internal_program; p = p->next) {
       int e,tmp=0;
       if (!p)
-	fatal("gc_internal_program was bogus.\n");
+	Pike_fatal("gc_internal_program was bogus.\n");
       for(e=0;e<p->num_constants;e++)
       {
 	if(p->constants[e].sval.type == T_PROGRAM && p->constants[e].sval.u.program == p)
@@ -6417,7 +6417,7 @@ void pop_compiler_frame(void)
   f=Pike_compiler->compiler_frame;
 #ifdef PIKE_DEBUG
   if(!f)
-    fatal("Popping out of compiler frames\n");
+    Pike_fatal("Popping out of compiler frames\n");
 #endif
 
   low_pop_local_variables(0);
@@ -6452,7 +6452,7 @@ ptrdiff_t low_get_storage(struct program *o, struct program *p)
   hval%=GET_STORAGE_CACHE_SIZE;
 #ifdef PIKE_DEBUG
   if(hval>GET_STORAGE_CACHE_SIZE)
-    fatal("hval>GET_STORAGE_CACHE_SIZE");
+    Pike_fatal("hval>GET_STORAGE_CACHE_SIZE");
 #endif
   if(get_storage_cache[hval].oid == oid &&
      get_storage_cache[hval].pid == pid)
@@ -6559,7 +6559,7 @@ int find_child(struct program *parent, struct program *child)
   h= h % FIND_CHILD_HASHSIZE;
 #ifdef PIKE_DEBUG
   if(h>=FIND_CHILD_HASHSIZE)
-    fatal("find_child failed to hash within boundaries.\n");
+    Pike_fatal("find_child failed to hash within boundaries.\n");
 #endif
   if(find_child_cache[h].pid == parent->id &&
      find_child_cache[h].cid == child->id)
@@ -6598,7 +6598,7 @@ void yywarning(char *fmt, ...) ATTRIBUTE((format(printf,1,2)))
   va_end(args);
 
   if(strlen(buf)>sizeof(buf))
-    fatal("Buffer overflow in yywarning!\n");
+    Pike_fatal("Buffer overflow in yywarning!\n");
 
   if ((error_handler && error_handler->prog) || get_master()) {
     ref_push_string(lex.current_file);
@@ -6668,7 +6668,7 @@ PMOD_EXPORT int implements(struct program *a, struct program *b)
   hval %= IMPLEMENTS_CACHE_SIZE;
 #ifdef PIKE_DEBUG
   if(hval >= IMPLEMENTS_CACHE_SIZE)
-    fatal("Implements_cache failed!\n");
+    Pike_fatal("Implements_cache failed!\n");
 #endif
   if(implements_cache[hval].aid==a->id && implements_cache[hval].bid==b->id)
   {
@@ -6750,7 +6750,7 @@ PMOD_EXPORT int is_compatible(struct program *a, struct program *b)
   hval %= IMPLEMENTS_CACHE_SIZE;
 #ifdef PIKE_DEBUG
   if(hval >= IMPLEMENTS_CACHE_SIZE)
-    fatal("Implements_cache failed!\n");
+    Pike_fatal("Implements_cache failed!\n");
 #endif
   if(is_compatible_cache[hval].aid==aid &&
      is_compatible_cache[hval].bid==bid)
@@ -6768,7 +6768,7 @@ PMOD_EXPORT int is_compatible(struct program *a, struct program *b)
   rhval %= IMPLEMENTS_CACHE_SIZE;
 #ifdef PIKE_DEBUG
   if(rhval >= IMPLEMENTS_CACHE_SIZE)
-    fatal("Implements_cache failed!\n");
+    Pike_fatal("Implements_cache failed!\n");
 #endif
   if(implements_cache[rhval].aid==bid &&
      implements_cache[rhval].bid==aid &&
diff --git a/src/queue.c b/src/queue.c
index 6be42e5f4a9c25b43c49cb77cecdac67eeba4d2d..bbd05781916044eb3e07f69b4125372059329503 100644
--- a/src/queue.c
+++ b/src/queue.c
@@ -24,7 +24,7 @@ void run_queue(struct pike_queue *q)
 
 #ifdef PIKE_DEBUG
   if (q->first && q->last == (struct queue_block *)(ptrdiff_t)1)
-    fatal("This looks like a lifo queue.\n");
+    Pike_fatal("This looks like a lifo queue.\n");
 #endif
 
   while((b=q->first))
@@ -61,7 +61,7 @@ void enqueue(struct pike_queue *q, queue_call call, void *data)
 #ifdef PIKE_DEBUG
   if (!q->first) q->last = 0;
   else if (q->last == (struct queue_block *)(ptrdiff_t)1)
-    fatal("This looks like a lifo queue.\n");
+    Pike_fatal("This looks like a lifo queue.\n");
 #endif
 
   b=q->last;
@@ -90,7 +90,7 @@ void run_lifo_queue(struct pike_queue *q)
 
 #ifdef PIKE_DEBUG
   if (q->first && q->last != (struct queue_block *)(ptrdiff_t)1)
-    fatal("This does not look like a lifo queue.\n");
+    Pike_fatal("This does not look like a lifo queue.\n");
 #endif
 
   while((b=q->first))
@@ -114,7 +114,7 @@ void enqueue_lifo(struct pike_queue *q, queue_call call, void *data)
 #ifdef PIKE_DEBUG
   if (!q->first) q->last = (struct queue_block *)(ptrdiff_t)1;
   else if (q->last != (struct queue_block *)(ptrdiff_t)1)
-    fatal("This does not look like a lifo queue.\n");
+    Pike_fatal("This does not look like a lifo queue.\n");
 #endif
 
   if(!b || b->used >= QUEUE_ENTRIES)
@@ -136,7 +136,7 @@ void *dequeue_lifo(struct pike_queue *q, queue_call call)
 
 #ifdef PIKE_DEBUG
   if (q->first && q->last != (struct queue_block *)(ptrdiff_t)1)
-    fatal("This does not look like a lifo queue.\n");
+    Pike_fatal("This does not look like a lifo queue.\n");
 #endif
 
   while((b=q->first))
diff --git a/src/rbtree.c b/src/rbtree.c
index f4f561729793ee1e83deccc40a9f6f26b2e40354..ee967f0075335c6dafe8509b4394271f145a1cfa 100644
--- a/src/rbtree.c
+++ b/src/rbtree.c
@@ -5,7 +5,7 @@
 
 #include "global.h"
 
-RCSID("$Id: rbtree.c,v 1.9 2001/12/10 00:57:17 mast Exp $");
+RCSID("$Id: rbtree.c,v 1.10 2002/08/15 14:49:25 marcus Exp $");
 
 #include "interpret.h"
 #include "pike_error.h"
@@ -100,7 +100,7 @@ void rbstack_insert (struct rbstack_ptr *top, struct rbstack_ptr *pos,
       if (rbp1.slice->up) rbstack_up (&rbp1);
 #ifdef PIKE_DEBUG
       else if (rbp1.ssp != rbpos.ssp || rbp1.slice != rbpos.slice)
-	fatal ("Didn't find the given position on the stack.\n");
+	Pike_fatal ("Didn't find the given position on the stack.\n");
 #endif
     }
   }
@@ -117,7 +117,7 @@ void rbstack_assign (struct rbstack_ptr *target, struct rbstack_ptr *source)
   struct rbstack_slice *tgt_slice = target->slice;
 
 #ifdef PIKE_DEBUG
-  if (target->ssp) fatal ("target rbstack not empty.\n");
+  if (target->ssp) Pike_fatal ("target rbstack not empty.\n");
 #endif
 
   target->ssp = source->ssp;
@@ -154,7 +154,7 @@ void rbstack_copy (struct rbstack_ptr *target, struct rbstack_ptr *source)
   size_t ssp = source->ssp;
 
 #ifdef PIKE_DEBUG
-  if (target->ssp) fatal ("target rbstack not empty.\n");
+  if (target->ssp) Pike_fatal ("target rbstack not empty.\n");
 #endif
 
   target->ssp = ssp;
@@ -736,7 +736,7 @@ static struct rb_node_hdr *rebalance_after_delete (struct rb_node_hdr *node,
 void low_rb_init_root (struct rb_node_hdr *node)
 {
 #ifdef PIKE_DEBUG
-  if (!node) fatal ("New node is null.\n");
+  if (!node) Pike_fatal ("New node is null.\n");
 #endif
 #ifdef RB_STATS
   rb_num_adds++;
@@ -752,10 +752,10 @@ void low_rb_link_at_prev (struct rb_node_hdr **root, struct rbstack_ptr rbstack,
   struct rb_node_hdr *parent = RBSTACK_PEEK (rbstack);
 
 #ifdef PIKE_DEBUG
-  if (!new) fatal ("New node is null.\n");
-  if (!parent) fatal ("Cannot link in root node.\n");
+  if (!new) Pike_fatal ("New node is null.\n");
+  if (!parent) Pike_fatal ("Cannot link in root node.\n");
   if (!(parent->flags & RB_THREAD_PREV))
-    fatal ("Cannot link in node at interior prev link.\n");
+    Pike_fatal ("Cannot link in node at interior prev link.\n");
 #endif
 #ifdef RB_STATS
   rb_num_adds++;
@@ -777,10 +777,10 @@ void low_rb_link_at_next (struct rb_node_hdr **root, struct rbstack_ptr rbstack,
   struct rb_node_hdr *parent = RBSTACK_PEEK (rbstack);
 
 #ifdef PIKE_DEBUG
-  if (!new) fatal ("New node is null.\n");
-  if (!parent) fatal ("Cannot link in root node.\n");
+  if (!new) Pike_fatal ("New node is null.\n");
+  if (!parent) Pike_fatal ("Cannot link in root node.\n");
   if (!(parent->flags & RB_THREAD_NEXT))
-    fatal ("Cannot link in node at interior next link.\n");
+    Pike_fatal ("Cannot link in node at interior next link.\n");
 #endif
 #ifdef RB_STATS
   rb_num_adds++;
@@ -876,7 +876,7 @@ struct rb_node_hdr *low_rb_unlink_with_move (struct rb_node_hdr **root,
 
   RBSTACK_POP (rbstack, node);
 #ifdef PIKE_DEBUG
-  if (!node) fatal ("No node to delete on stack.\n");
+  if (!node) Pike_fatal ("No node to delete on stack.\n");
 #endif
 #ifdef RB_STATS
   rb_num_deletes++;
@@ -958,7 +958,7 @@ struct rb_node_hdr *low_rb_unlink_with_move (struct rb_node_hdr **root,
   debug_check_rbstack (*root, *rbstack_ptr);
   if (node != unlink) next = node;
   if (RBSTACK_PEEK (*rbstack_ptr) != next)
-    fatal ("Stack got %p on top, but next node is %p.\n",
+    Pike_fatal ("Stack got %p on top, but next node is %p.\n",
 	   RBSTACK_PEEK (*rbstack_ptr), next);
   if (!keep_rbstack) RBSTACK_FREE (*rbstack_ptr);
   return unlink;
@@ -978,7 +978,7 @@ void low_rb_unlink_without_move (struct rb_node_hdr **root,
 
   RBSTACK_POP (rbstack, node);
 #ifdef PIKE_DEBUG
-  if (!node) fatal ("No node to delete on stack.\n");
+  if (!node) Pike_fatal ("No node to delete on stack.\n");
 #endif
 #ifdef RB_STATS
   rb_num_deletes++;
@@ -1051,7 +1051,7 @@ void low_rb_unlink_without_move (struct rb_node_hdr **root,
   real_low_rb_unlink_without_move (root, rbstack_ptr, 1);
   debug_check_rbstack (*root, *rbstack_ptr);
   if (RBSTACK_PEEK (*rbstack_ptr) != next)
-    fatal ("Stack got %p on top, but next node is %p.\n",
+    Pike_fatal ("Stack got %p on top, but next node is %p.\n",
 	   RBSTACK_PEEK (*rbstack_ptr), next);
   if (!keep_rbstack) RBSTACK_FREE (*rbstack_ptr);
 }
@@ -1124,7 +1124,7 @@ void rb_add_after (struct rb_node_hdr **root,
       while (node != existing) {
 	LOW_RB_TRACK_PREV (rbstack, node);
 #ifdef PIKE_DEBUG
-	if (!node) fatal ("Tree doesn't contain the existing node.\n");
+	if (!node) Pike_fatal ("Tree doesn't contain the existing node.\n");
 #endif
       }
       if (node->flags & RB_THREAD_NEXT) {
@@ -1145,7 +1145,7 @@ void rb_add_after (struct rb_node_hdr **root,
 
   else {
 #ifdef PIKE_DEBUG
-    if (existing) fatal ("Tree doesn't contain the existing node.\n");
+    if (existing) Pike_fatal ("Tree doesn't contain the existing node.\n");
 #endif
     low_rb_init_root (new);
     *root = new;
@@ -1181,17 +1181,17 @@ void rb_remove_node (struct rb_node_hdr **root,
   struct rb_node_hdr *node = *root;
   RBSTACK_INIT (rbstack);
 #ifdef PIKE_DEBUG
-  if (!node) fatal ("Tree is empty.\n");
+  if (!node) Pike_fatal ("Tree is empty.\n");
 #if 0
   if (find_fn (key, to_delete))
-    fatal ("Given key doesn't match the node to delete.\n");
+    Pike_fatal ("Given key doesn't match the node to delete.\n");
 #endif
 #endif
   LOW_RB_TRACK_NEQ (rbstack, node, cmp_res = find_fn (key, node) >= 0 ? 1 : -1, ;, ;);
   while (node != to_delete) {
     LOW_RB_TRACK_PREV (rbstack, node);
 #ifdef PIKE_DEBUG
-    if (!node) fatal ("Tree doesn't contain the node to delete.\n");
+    if (!node) Pike_fatal ("Tree doesn't contain the node to delete.\n");
 #endif
   }
   low_rb_unlink_without_move (root, rbstack);
@@ -1235,17 +1235,17 @@ struct rb_node_hdr *rb_remove_node_with_move (struct rb_node_hdr **root,
   struct rb_node_hdr *node = *root;
   RBSTACK_INIT (rbstack);
 #ifdef PIKE_DEBUG
-  if (!node) fatal ("Tree is empty.\n");
+  if (!node) Pike_fatal ("Tree is empty.\n");
 #if 0
   if (find_fn (key, to_delete))
-    fatal ("Given key doesn't match the node to delete.\n");
+    Pike_fatal ("Given key doesn't match the node to delete.\n");
 #endif
 #endif
   LOW_RB_TRACK_NEQ (rbstack, node, cmp_res = find_fn (key, node) >= 0 ? 1 : -1, ;, ;);
   while (node != to_delete) {
     LOW_RB_TRACK_PREV (rbstack, node);
 #ifdef PIKE_DEBUG
-    if (!node) fatal ("Tree doesn't contain the node to delete.\n");
+    if (!node) Pike_fatal ("Tree doesn't contain the node to delete.\n");
 #endif
   }
   return low_rb_unlink_with_move (root, rbstack, node_size);
@@ -1314,7 +1314,7 @@ struct rb_node_hdr *rb_get_nth (struct rb_node_hdr *root, size_t n)
   }
 tree_too_small:
 #ifdef PIKE_DEBUG
-  fatal ("Tree too small for index %"PRINTSIZET"u.\n", index);
+  Pike_fatal ("Tree too small for index %"PRINTSIZET"u.\n", index);
 #endif
   return (struct rb_node_hdr *) (ptrdiff_t) -1;
 }
@@ -1458,7 +1458,7 @@ struct rb_node_hdr *rb_make_tree (struct rb_node_hdr *list, size_t length)
     while (count < length) {
       struct rb_node_hdr *next;
 #ifdef PIKE_DEBUG
-      if (!list) fatal ("Premature end of list at %"PRINTSIZET"u, "
+      if (!list) Pike_fatal ("Premature end of list at %"PRINTSIZET"u, "
 			"expected %"PRINTSIZET"u.\n", count, length);
 #endif
       next = list->next;
@@ -1514,7 +1514,7 @@ struct rb_node_hdr *rb_make_tree (struct rb_node_hdr *list, size_t length)
   }
 
 #ifdef PIKE_DEBUG
-  if (list) fatal ("List longer than expected %d.\n", length);
+  if (list) Pike_fatal ("List longer than expected %d.\n", length);
 #endif
   return root;
 }
diff --git a/src/rbtree_low.h b/src/rbtree_low.h
index a8d9282201129585476d065ebbc910a52bd4e028..bc062e553c490ccc3bc9d915a3f2f54323f01fe6 100644
--- a/src/rbtree_low.h
+++ b/src/rbtree_low.h
@@ -3,7 +3,7 @@
  *
  * Created 2001-04-27 by Martin Stjernholm
  *
- * $Id: rbtree_low.h,v 1.1 2001/12/10 00:58:44 mast Exp $
+ * $Id: rbtree_low.h,v 1.2 2002/08/15 14:49:25 marcus Exp $
  */
 
 #ifndef RBTREE_LOW_H
@@ -108,7 +108,7 @@ void rbstack_shift (struct rbstack_ptr rbstack,
   ((rbstack).ssp ? (rbstack).slice->stack[(rbstack).ssp - 1] : NULL)
 
 #define RBSTACK_POKE(rbstack, node) do {				\
-    DO_IF_DEBUG (if (!(rbstack).ssp) fatal ("Using free stack pointer.\n")); \
+    DO_IF_DEBUG (if (!(rbstack).ssp) Pike_fatal ("Using free stack pointer.\n")); \
     (rbstack).slice->stack[(rbstack).ssp - 1] = (node);			\
   } while (0)
 
@@ -255,7 +255,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
       rb_num_finds++;							\
     );									\
     while (1) {								\
-      DO_IF_DEBUG (if (!node) fatal ("Recursing into null node.\n"));	\
+      DO_IF_DEBUG (if (!node) Pike_fatal ("Recursing into null node.\n"));	\
       DO_IF_RB_STATS (							\
 	if (++stat_depth_count_ > rb_max_depth)				\
 	  rb_max_depth = stat_depth_count_;				\
@@ -301,7 +301,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
       rb_num_finds++;							\
     );									\
     while (1) {								\
-      DO_IF_DEBUG (if (!node) fatal ("Recursing into null node.\n"));	\
+      DO_IF_DEBUG (if (!node) Pike_fatal ("Recursing into null node.\n"));	\
       DO_IF_RB_STATS (							\
 	if (++stat_depth_count_ > rb_max_depth)				\
 	  rb_max_depth = stat_depth_count_;				\
@@ -316,7 +316,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
 	(node) = (node)->prev;						\
       }									\
       else {								\
-	DO_IF_DEBUG (if (!cmp_res) fatal ("cmp_res 0 not expected.\n")); \
+	DO_IF_DEBUG (if (!cmp_res) Pike_fatal ("cmp_res 0 not expected.\n")); \
 	if ((node)->flags & RB_THREAD_NEXT) {				\
 	  {got_lt;}							\
 	  break;							\
@@ -331,7 +331,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
 #define LOW_RB_TRACK(rbstack, node, cmp, got_lt, got_eq, got_gt)	\
   do {									\
     DO_IF_DEBUG (							\
-      if (RBSTACK_PEEK (rbstack)) fatal ("The stack is not empty.\n");	\
+      if (RBSTACK_PEEK (rbstack)) Pike_fatal ("The stack is not empty.\n");	\
     );									\
     DO_IF_RB_STATS (rb_num_finds--);					\
     LOW_RB_FIND (							\
@@ -352,7 +352,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
 #define LOW_RB_TRACK_NEQ(rbstack, node, cmp, got_lt, got_gt)		\
   do {									\
     DO_IF_DEBUG (							\
-      if (RBSTACK_PEEK (rbstack)) fatal ("The stack is not empty.\n");	\
+      if (RBSTACK_PEEK (rbstack)) Pike_fatal ("The stack is not empty.\n");	\
     );									\
     DO_IF_RB_STATS (rb_num_finds--);					\
     LOW_RB_FIND_NEQ (							\
@@ -369,7 +369,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
 #define LOW_RB_TRACK_FIRST(rbstack, node)				\
   do {									\
     DO_IF_DEBUG (							\
-      if (RBSTACK_PEEK (rbstack)) fatal ("The stack is not empty.\n");	\
+      if (RBSTACK_PEEK (rbstack)) Pike_fatal ("The stack is not empty.\n");	\
     );									\
     DO_IF_RB_STATS (rb_num_sidetracks++);				\
     if (node) {								\
@@ -389,7 +389,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
   do {									\
     DO_IF_DEBUG (							\
       if (node != RBSTACK_PEEK (rbstack))				\
-	fatal ("Given node is not on top of stack.\n");			\
+	Pike_fatal ("Given node is not on top of stack.\n");			\
     );									\
     DO_IF_RB_STATS (rb_num_sidetracks++);				\
     if (node->flags & RB_THREAD_NEXT) {					\
@@ -415,7 +415,7 @@ void debug_check_rbstack (struct rb_node_hdr *root, struct rbstack_ptr rbstack);
   do {									\
     DO_IF_DEBUG (							\
       if (node != RBSTACK_PEEK (rbstack))				\
-	fatal ("Given node is not on top of stack.\n");			\
+	Pike_fatal ("Given node is not on top of stack.\n");			\
     );									\
     DO_IF_RB_STATS (rb_num_sidetracks++);				\
     if (node->flags & RB_THREAD_PREV) {					\
diff --git a/src/signal_handler.c b/src/signal_handler.c
index 4f392a187dcd7617990c3ecf7368884b8aa08cf6..12a97e345cc9420e70fa91b15a99b20f3f48a8d5 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -25,7 +25,7 @@
 #include "main.h"
 #include <signal.h>
 
-RCSID("$Id: signal_handler.c,v 1.224 2002/05/31 22:41:26 nilsson Exp $");
+RCSID("$Id: signal_handler.c,v 1.225 2002/08/15 14:49:25 marcus Exp $");
 
 #ifdef HAVE_PASSWD_H
 # include <passwd.h>
@@ -152,7 +152,7 @@ RCSID("$Id: signal_handler.c,v 1.224 2002/05/31 22:41:26 nilsson Exp $");
 #define SAFE_FIFO_DEBUG_BEGIN() do {\
   static volatile int inside=0;	      \
   if(inside) \
-    fatal("You need to define NEED_SIGNAL_SAFE_FIFO in signal_handler.c!\n"); \
+    Pike_fatal("You need to define NEED_SIGNAL_SAFE_FIFO in signal_handler.c!\n"); \
   inside=1;
 
 #define SAFE_FIFO_DEBUG_END() inside=0; }while(0)
@@ -201,7 +201,7 @@ RCSID("$Id: signal_handler.c,v 1.224 2002/05/31 22:41:26 nilsson Exp $");
 #define END_FIFO_PUSH(pre,TYPE) \
  while( (PIKE_CONCAT(pre,_tmp3_)=write(PIKE_CONCAT(pre,_fd)[1],(char *)&PIKE_CONCAT(pre,_tmp_),sizeof(PIKE_CONCAT(pre,_tmp_)))) < 0 && errno==EINTR); \
  DO_IF_DEBUG(if( PIKE_CONCAT(pre,_tmp3_) != sizeof( PIKE_CONCAT(pre,_tmp_))) \
-		  fatal("Atomic pipe write failed!!\n"); ) \
+		  Pike_fatal("Atomic pipe write failed!!\n"); ) \
   errno=PIKE_CONCAT(pre,_errno_save);\
   PIKE_CONCAT(pre,_data_available)=1; \
  } while(0)
@@ -219,7 +219,7 @@ RCSID("$Id: signal_handler.c,v 1.224 2002/05/31 22:41:26 nilsson Exp $");
 
 #define INIT_FIFO(pre,TYPE) do {			\
   if(pike_make_pipe(PIKE_CONCAT(pre,_fd)) <0)		\
-    fatal("Couldn't create buffer " #pre ".\n");	\
+    Pike_fatal("Couldn't create buffer " #pre ".\n");	\
 							\
   set_nonblocking(PIKE_CONCAT(pre,_fd)[0],1);		\
   set_nonblocking(PIKE_CONCAT(pre,_fd)[1],1);		\
@@ -506,7 +506,7 @@ void dump_process_history(pid_t pid)
 {
   int e;
   if(pid < 1)
-    fatal("Pid out of range: %ld\n",(long)pid);
+    Pike_fatal("Pid out of range: %ld\n",(long)pid);
 
   fprintf(stderr,"Process history:");
   for(e=MAXIMUM(-4095,-last_pid_p);e<0;e++)
@@ -523,7 +523,7 @@ void dump_process_history(pid_t pid)
 void process_started(pid_t pid)
 {
   if(pid < 1)
-    fatal("Pid out of range: %ld\n",(long)pid);
+    Pike_fatal("Pid out of range: %ld\n",(long)pid);
 
   last_pids[last_pid_p++ & 4095]=pid;
 
@@ -543,14 +543,14 @@ void process_started(pid_t pid)
 
     default:
       dump_process_history(pid);
-      fatal("Process debug: Pid %ld started without stopping! (status=%d)\n",(long)pid,process_info[pid]);
+      Pike_fatal("Process debug: Pid %ld started without stopping! (status=%d)\n",(long)pid,process_info[pid]);
   }
 }
 
 void process_done(pid_t pid, char *from)
 {
   if(pid < 1)
-    fatal("Pid out of range in %s: %ld\n",from,(long)pid);
+    Pike_fatal("Pid out of range in %s: %ld\n",from,(long)pid);
 
   if(pid>=MY_MAX_PID)
     return;
@@ -681,7 +681,7 @@ PMOD_EXPORT void check_signals(struct callback *foo, void *bar, void *gazonk)
       BEGIN_FIFO_LOOP(wait,wait_data);
 
       if(!FIFO_DATA(wait,wait_data).pid)
-	  fatal("FIFO_DATA(wait,wait_data).pid=0 NEED_SIGNAL_SAFE_FIFO is "
+	  Pike_fatal("FIFO_DATA(wait,wait_data).pid=0 NEED_SIGNAL_SAFE_FIFO is "
 #ifndef NEED_SIGNAL_SAFE_FIFO
 		"not "
 #endif
@@ -1235,7 +1235,7 @@ static void f_pid_status_wait(INT32 args)
 	if(s && s->type == T_OBJECT && s->u.object == fp->current_object)
 	{
 	  dump_process_history(pid);
-	  fatal("Operating system failure: "
+	  Pike_fatal("Operating system failure: "
 		"Pike lost track of a child, pid=%d, errno=%d.\n",pid,err);
 
 	}
@@ -1315,7 +1315,7 @@ static void f_pid_status_wait(INT32 args)
 	  }
 	}else{
 	  /* This should not happen! */
-	  fatal("Pid = 0 in waitpid(%d)\n",pid);
+	  Pike_fatal("Pid = 0 in waitpid(%d)\n",pid);
 	}
       }
 	
@@ -3812,7 +3812,7 @@ static void f_ualarm(INT32 args)
 static RETSIGTYPE fatal_signal(int signum)
 {
   my_signal(signum,SIG_DFL);
-  fatal("Fatal signal (%s) recived.\n",signame(signum));
+  Pike_fatal("Fatal signal (%s) recived.\n",signame(signum));
 }
 #endif
 
@@ -3899,7 +3899,7 @@ void init_signals(void)
     mt_init(& wait_thread_mutex);
 
     if (th_create_small(&foo,wait_thread,0)) {
-      fatal("wait thread: Failed to create thread!\n"
+      Pike_fatal("wait thread: Failed to create thread!\n"
 	    "errno: %d\n", errno);
     }
     num_threads++;    /* We use the interpreter lock */
diff --git a/src/stralloc.c b/src/stralloc.c
index b51660ff51d29fa1cff89927a04de38644cffa1c..702137a4d307bf01ebcb61705c55c8f2ea4ffb87 100644
--- a/src/stralloc.c
+++ b/src/stralloc.c
@@ -27,7 +27,7 @@
 #define HUGE HUGE_VAL
 #endif /*!HUGE*/
 
-RCSID("$Id: stralloc.c,v 1.142 2002/05/31 22:41:26 nilsson Exp $");
+RCSID("$Id: stralloc.c,v 1.143 2002/08/15 14:49:25 marcus Exp $");
 
 /* #define STRALLOC_USE_PRIMES */
 
@@ -151,7 +151,7 @@ static INLINE unsigned INT32 generic_extract (const void *str, int size, ptrdiff
     case 1: return ((unsigned INT16 *)str)[pos];
     case 2: return ((unsigned INT32 *)str)[pos];
   }
-  fatal("Illegal shift size!\n");
+  Pike_fatal("Illegal shift size!\n");
   return 0;
 }
 
@@ -161,11 +161,11 @@ PMOD_EXPORT INLINE unsigned INT32 index_shared_string(struct pike_string *s,
 #ifdef PIKE_DEBUG
   if(pos > s->len || pos<0) {
     if (s->len) {
-      fatal("String index %ld is out of range [0 - %ld]!\n",
+      Pike_fatal("String index %ld is out of range [0 - %ld]!\n",
 	    DO_NOT_WARN((long)pos),
 	    DO_NOT_WARN((long)s->len-1));
     } else {
-      fatal("Attempt to index the empty string with %ld!\n",
+      Pike_fatal("Attempt to index the empty string with %ld!\n",
 	    DO_NOT_WARN((long)pos));
     }
   }
@@ -178,10 +178,10 @@ PMOD_EXPORT INLINE void low_set_index(struct pike_string *s, ptrdiff_t pos,
 {
 #ifdef PIKE_DEBUG
   if(pos > s->len || pos<0)
-    fatal("string index out of range!\n");
+    Pike_fatal("string index out of range!\n");
   
   if(pos == s->len && value)
-    fatal("string zero termination foul!\n");
+    Pike_fatal("string zero termination foul!\n");
 #endif
   switch(s->size_shift)
   {
@@ -189,7 +189,7 @@ PMOD_EXPORT INLINE void low_set_index(struct pike_string *s, ptrdiff_t pos,
     case 1: STR1(s)[pos]=value; break;
     case 2: STR2(s)[pos]=value; break;
     default:
-      fatal("Illegal shift size!\n");
+      Pike_fatal("Illegal shift size!\n");
   }
 }
 
@@ -197,7 +197,7 @@ PMOD_EXPORT INLINE void low_set_index(struct pike_string *s, ptrdiff_t pos,
 PMOD_EXPORT INLINE struct pike_string *debug_check_size_shift(struct pike_string *a,int shift)
 {
   if(a->size_shift != shift)
-    fatal("Wrong STRX macro used!\n");
+    Pike_fatal("Wrong STRX macro used!\n");
   return a;
 }
 #endif
@@ -241,7 +241,7 @@ PMOD_EXPORT void generic_memcpy(PCHARP to,
 {
 #ifdef PIKE_DEBUG
   if(len<0)
-    fatal("Cannot copy %ld bytes!\n",
+    Pike_fatal("Cannot copy %ld bytes!\n",
 	  DO_NOT_WARN((long)len));
 #endif
 
@@ -367,7 +367,7 @@ static INLINE struct pike_string *internal_findstring(const char *s,
     {
       debug_dump_pike_string(curr, 70);
       locate_problem(has_zero_refs);
-      fatal("String with no references.\n");
+      Pike_fatal("String with no references.\n");
     }
 #endif
     debug_malloc_touch(curr);
@@ -436,7 +436,7 @@ static struct pike_string *propagate_shared_string(const struct pike_string *s,
     {
       debug_dump_pike_string(curr, 70);
       locate_problem(has_zero_refs);
-      fatal("String with no references.\n");
+      Pike_fatal("String with no references.\n");
     }
 #endif
   }
@@ -530,7 +530,7 @@ BLOCK_ALLOC(short_pike_string2, SHORT_STRING_BLOCK)
        really_free_short_pike_string1((struct short_pike_string1 *)s); \
      DO_IF_DEBUG( \
      } else if (s->size_shift != 2) { \
-       fatal("Unsupported string shift: %d\n", s->size_shift); \
+       Pike_fatal("Unsupported string shift: %d\n", s->size_shift); \
      ) \
      } else { \
        really_free_short_pike_string2((struct short_pike_string2 *)s); \
@@ -644,7 +644,7 @@ PMOD_EXPORT struct pike_string *debug_begin_wide_shared_string(size_t len, int s
       t = (struct pike_string *)alloc_short_pike_string1();
 #ifdef PIKE_DEBUG
     } else if (shift != 2) {
-      fatal("Unsupported string shift: %d\n", shift);
+      Pike_fatal("Unsupported string shift: %d\n", shift);
 #endif /* PIKE_DEBUG */
     } else {
       t = (struct pike_string *)alloc_short_pike_string2();
@@ -673,7 +673,7 @@ PMOD_EXPORT struct pike_string *low_end_shared_string(struct pike_string *s)
   s2 = internal_findstring(s->str, len, s->size_shift, h);
 #ifdef PIKE_DEBUG
   if(s2==s) 
-    fatal("end_shared_string called twice! (or something like that)\n");
+    Pike_fatal("end_shared_string called twice! (or something like that)\n");
 #endif
 
   if(s2)
@@ -700,7 +700,7 @@ PMOD_EXPORT struct pike_string *end_shared_string(struct pike_string *s)
   switch(s->size_shift)
   {
     default:
-      fatal("ARGHEL! size_shift:%d\n", s->size_shift);
+      Pike_fatal("ARGHEL! size_shift:%d\n", s->size_shift);
 
     case 2:
       switch(find_magnitude2(STR2(s),s->len))
@@ -742,7 +742,7 @@ PMOD_EXPORT struct pike_string *end_and_resize_shared_string(struct pike_string
   struct pike_string *tmp;
 #ifdef PIKE_DEBUG
   if(len > str->len)
-    fatal("Cannot extend string here!\n");
+    Pike_fatal("Cannot extend string here!\n");
 #endif
   if( str->len <= SHORT_STRING_THRESHOLD ?
       (len <= SHORT_STRING_THRESHOLD) :
@@ -787,7 +787,7 @@ PMOD_EXPORT struct pike_string * debug_make_shared_binary_pcharp(const PCHARP st
     case 2:
       return make_shared_binary_string2((p_wchar2 *)(str.ptr),  len);
     default:
-      fatal("Unknown string width!\n");
+      Pike_fatal("Unknown string width!\n");
   }
   /* NOT REACHED */
   return NULL;	/* Keep the compiler happy */
@@ -900,7 +900,7 @@ PMOD_EXPORT void unlink_pike_string(struct pike_string *s)
   propagate_shared_string(s,h);
 #ifdef PIKE_DEBUG
   if (base_table[h] != s) {
-    fatal("propagate_shared_string() failed. Probably got bogus pike_string.\n");
+    Pike_fatal("propagate_shared_string() failed. Probably got bogus pike_string.\n");
   }
 #endif /* PIKE_DEBUG */
   base_table[h]=s->next;
@@ -935,19 +935,19 @@ PMOD_EXPORT void really_free_string(struct pike_string *s)
   extern int d_flag;
   if (d_flag) {
     if (s->refs) {
-      fatal("Freeing string with references!\n");
+      Pike_fatal("Freeing string with references!\n");
     }
     if(d_flag > 2)
     {
       if(s->next == (struct pike_string *)(ptrdiff_t)-1)
-	fatal("Freeing shared string again!\n");
+	Pike_fatal("Freeing shared string again!\n");
 
       if(((ptrdiff_t)s->next) & 1)
-	fatal("Freeing shared string again, memory corrupt or other bug!\n");
+	Pike_fatal("Freeing shared string again, memory corrupt or other bug!\n");
     }
   }
   if ((s->size_shift < 0) || (s->size_shift > 2)) {
-    fatal("Freeing string with bad shift (0x%08x); could it be a type?\n",
+    Pike_fatal("Freeing string with bad shift (0x%08x); could it be a type?\n",
 	  s->size_shift);
   }
 #endif
@@ -1029,21 +1029,21 @@ PMOD_EXPORT void check_string(struct pike_string *s)
   if(current_do_debug_cycle == last_stralloc_verify)
   {
     if(debug_findstring(s) !=s)
-      fatal("Shared string not shared.\n");
+      Pike_fatal("Shared string not shared.\n");
   }else{
     if(do_hash(s) != s->hval)
     {
       locate_problem(wrong_hash);
-      fatal("Hash value changed?\n");
+      Pike_fatal("Hash value changed?\n");
     }
     
     if(debug_findstring(s) !=s)
-      fatal("Shared string not shared.\n");
+      Pike_fatal("Shared string not shared.\n");
 
     if(index_shared_string(s,s->len))
     {
       locate_problem(improper_zero_termination);
-      fatal("Shared string is not zero terminated properly.\n");
+      Pike_fatal("Shared string is not zero terminated properly.\n");
     }
   }
 }
@@ -1065,31 +1065,31 @@ PMOD_EXPORT void verify_shared_strings_tables(void)
       h++;
 
       if (bad_pointer(s)) {
-	fatal("Odd string pointer in string table!\n");
+	Pike_fatal("Odd string pointer in string table!\n");
       }
 
       if(s->len < 0)
-	fatal("Shared string shorter than zero bytes.\n");
+	Pike_fatal("Shared string shorter than zero bytes.\n");
 
       if(s->refs <= 0)
       {
 	locate_problem(has_zero_refs);
-	fatal("Shared string had too few references.\n");
+	Pike_fatal("Shared string had too few references.\n");
       }
 
       if(index_shared_string(s,s->len))
       {
 	locate_problem(improper_zero_termination);
-	fatal("Shared string didn't end with a zero.\n");
+	Pike_fatal("Shared string didn't end with a zero.\n");
       }
 
       if(do_hash(s) != s->hval)
-	fatal("Shared string hashed to other number.\n");
+	Pike_fatal("Shared string hashed to other number.\n");
 
       if(HMODULO(s->hval) != e)
       {
 	locate_problem(wrong_hash);
-	fatal("Shared string hashed to wrong place.\n");
+	Pike_fatal("Shared string hashed to wrong place.\n");
       }
 
       if(h>10000)
@@ -1097,14 +1097,14 @@ PMOD_EXPORT void verify_shared_strings_tables(void)
 	struct pike_string *s2;
 	for(s2=s;s2;s2=s2->next)
 	  if(s2 == s)
-	    fatal("Shared string table is cyclic.\n");
+	    Pike_fatal("Shared string table is cyclic.\n");
 	h=0;
       }
     }
     UNLOCK_BUCKET(e);
   }
   if(num != num_strings)
-    fatal("Num strings is wrong %d!=%d\n",num,num_strings);
+    Pike_fatal("Num strings is wrong %d!=%d\n",num,num_strings);
 }
 
 PMOD_EXPORT int safe_debug_findstring(struct pike_string *foo)
@@ -1445,7 +1445,7 @@ PMOD_EXPORT struct pike_string *modify_shared_string(struct pike_string *a,
   INT32 old_value;
 #ifdef PIKE_DEBUG
   if(index<0 || index>=a->len)
-    fatal("Index out of range in modify_shared_string()\n");
+    Pike_fatal("Index out of range in modify_shared_string()\n");
 #endif
 
 
@@ -1486,7 +1486,7 @@ PMOD_EXPORT struct pike_string *modify_shared_string(struct pike_string *a,
 	return end_shared_string(b);
 
       default:
-	fatal("Odd wide string conversion!\n");
+	Pike_fatal("Odd wide string conversion!\n");
     }
   }
 
@@ -1506,7 +1506,7 @@ PMOD_EXPORT struct pike_string *modify_shared_string(struct pike_string *a,
     switch(a->size_shift)
     {
       case 0:
-	fatal("Unshrinkable!\n");
+	Pike_fatal("Unshrinkable!\n");
 
       case 1:
 	/* Test if we *actually* can shrink it.. */
@@ -1636,7 +1636,7 @@ PMOD_EXPORT ptrdiff_t string_search(struct pike_string *haystack,
 #ifdef PIKE_DEBUG
   if((r < haystack->str) ||
      (r - haystack->str)>>haystack->size_shift > haystack->len)
-    fatal("string_search did a bobo!\n");
+    Pike_fatal("string_search did a bobo!\n");
 #endif
   return (r-haystack->str)>>haystack->size_shift;
 }
@@ -1648,7 +1648,7 @@ PMOD_EXPORT struct pike_string *string_slice(struct pike_string *s,
 #ifdef PIKE_DEBUG
   if(start < 0 || len<0 || start+len>s->len )
   {
-    fatal("string_slice, start = %ld, len = %ld, s->len = %ld\n",
+    Pike_fatal("string_slice, start = %ld, len = %ld, s->len = %ld\n",
 	  DO_NOT_WARN((long)start),
 	  DO_NOT_WARN((long)len),
 	  DO_NOT_WARN((long)s->len));
@@ -1672,7 +1672,7 @@ PMOD_EXPORT struct pike_string *string_slice(struct pike_string *s,
     case 2:
       return make_shared_binary_string2(STR2(s)+start,len);
   }
-  fatal("Illegal shift size!\n");
+  Pike_fatal("Illegal shift size!\n");
   return 0;
 }
 
@@ -1727,7 +1727,7 @@ PMOD_EXPORT struct pike_string *string_replace(struct pike_string *str,
       case 1: f=(replace_searchfunc)mojt.vtab->func1; break;
       case 2: f=(replace_searchfunc)mojt.vtab->func2; break;
 #ifdef PIKE_DEBUG
-      default: fatal("Illegal shift.\n");
+      default: Pike_fatal("Illegal shift.\n");
 #endif
     }
 
@@ -1744,7 +1744,7 @@ PMOD_EXPORT struct pike_string *string_replace(struct pike_string *str,
       case 1: f=(replace_searchfunc)mojt.vtab->func1; break;
       case 2: f=(replace_searchfunc)mojt.vtab->func2; break;
 #ifdef PIKE_DEBUG
-      default: fatal("Illegal shift.\n");
+      default: Pike_fatal("Illegal shift.\n");
 #endif
     }
 
@@ -1770,7 +1770,7 @@ PMOD_EXPORT struct pike_string *string_replace(struct pike_string *str,
   {
 #ifdef PIKE_DEBUG
     if(tmp + (del->len << str->size_shift) > end)
-      fatal("generic_memory_search found a match beyond end of string!!!\n");
+      Pike_fatal("generic_memory_search found a match beyond end of string!!!\n");
 #endif
     generic_memcpy(r,MKPCHARP(s,str->size_shift),(tmp-s)>>str->size_shift);
     INC_PCHARP(r,(tmp-s)>>str->size_shift);
@@ -1888,7 +1888,7 @@ void count_memory_in_strings(INT32 *num, INT32 *size)
   }
 #ifdef PIKE_DEBUG
   if(num_strings != num_)
-    fatal("Num strings is wrong! %d!=%d.\n",num_strings, num_);
+    Pike_fatal("Num strings is wrong! %d!=%d.\n",num_strings, num_);
 #endif
   num[0]=num_;
   size[0]=size_;
@@ -2020,7 +2020,7 @@ PMOD_EXPORT void string_builder_binary_strcat(struct string_builder *s, char *st
     case 1: convert_0_to_1(STR1(s->s)+s->s->len,(p_wchar0 *)str,len); break;
     case 2: convert_0_to_2(STR2(s->s)+s->s->len,(p_wchar0 *)str,len); break;
     default:
-      fatal("Illegal magnitude!\n");
+      Pike_fatal("Illegal magnitude!\n");
   }
   s->s->len+=len;
   /* Ensure NUL-termination */
@@ -2058,7 +2058,7 @@ PMOD_EXPORT void string_builder_fill(struct string_builder *s,
 
 #ifdef PIKE_DEBUG
   if(len<=0)
-    fatal("Cannot fill with zero length strings!\n");
+    Pike_fatal("Cannot fill with zero length strings!\n");
 #endif
   if(howmany<=0) return;
 
@@ -2169,7 +2169,7 @@ PMOD_EXPORT PCHARP MEMCHR_PCHARP(PCHARP ptr, int chr, ptrdiff_t len)
     case 1: return MKPCHARP(MEMCHR1((p_wchar1 *)ptr.ptr,chr,len),1);
     case 2: return MKPCHARP(MEMCHR2((p_wchar2 *)ptr.ptr,chr,len),2);
   }
-  fatal("Illegal shift in MEMCHR_PCHARP.\n");
+  Pike_fatal("Illegal shift in MEMCHR_PCHARP.\n");
   return MKPCHARP(0,0); /* make wcc happy */
 }
 
@@ -2576,7 +2576,7 @@ PMOD_EXPORT p_wchar0 *require_wstring0(struct pike_string *s,
       return 0;
 
     default:
-      fatal("Illegal shift size in string.\n");
+      Pike_fatal("Illegal shift size in string.\n");
   }
   return 0;
 }
@@ -2599,7 +2599,7 @@ PMOD_EXPORT p_wchar1 *require_wstring1(struct pike_string *s,
       return 0;
 
     default:
-      fatal("Illegal shift size in string.\n");
+      Pike_fatal("Illegal shift size in string.\n");
   }
   return 0;
 }
@@ -2625,7 +2625,7 @@ PMOD_EXPORT p_wchar2 *require_wstring2(struct pike_string *s,
       return STR2(s);
 
     default:
-      fatal("Illegal shift size in string.\n");
+      Pike_fatal("Illegal shift size in string.\n");
   }
   return 0;
 }
diff --git a/src/stralloc.h b/src/stralloc.h
index 19708c0fed476daeb480c3e8aebd1e23afa5ecc8..a5e949adf915d71a20a6bf88075078dec8e14072 100644
--- a/src/stralloc.h
+++ b/src/stralloc.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: stralloc.h,v 1.65 2002/05/31 22:41:26 nilsson Exp $
+ * $Id: stralloc.h,v 1.66 2002/08/15 14:49:25 marcus Exp $
  */
 #ifndef STRALLOC_H
 #define STRALLOC_H
@@ -78,8 +78,8 @@ PMOD_EXPORT struct pike_string *debug_findstring(const struct pike_string *foo);
 #define LOW_SUBTRACT_PCHARP(X,Y) (LOW_COMPARE_PCHARP((X),-,(Y))>>(X).shift)
 
 #ifdef PIKE_DEBUG
-#define SUBTRACT_PCHARP(X,Y)    ((X).shift!=(Y).shift?(fatal("Subtracting different size charp!\n")),0:LOW_SUBTRACT_PCHARP((X),(Y)))
-#define COMPARE_PCHARP(X,CMP,Y) ((X).shift!=(Y).shift?(fatal("Subtracting different size charp!\n")),0:LOW_COMPARE_PCHARP((X),CMP,(Y)))
+#define SUBTRACT_PCHARP(X,Y)    ((X).shift!=(Y).shift?(Pike_fatal("Subtracting different size charp!\n")),0:LOW_SUBTRACT_PCHARP((X),(Y)))
+#define COMPARE_PCHARP(X,CMP,Y) ((X).shift!=(Y).shift?(Pike_fatal("Subtracting different size charp!\n")),0:LOW_COMPARE_PCHARP((X),CMP,(Y)))
 #else
 #define SUBTRACT_PCHARP(X,Y) LOW_SUBTRACT_PCHARP((X),(Y))
 #define COMPARE_PCHARP(X,CMP,Y) LOW_COMPARE_PCHARP((X),CMP,(Y))
diff --git a/src/svalue.c b/src/svalue.c
index 0e1e764921ccde53dbd0dba860a4aaeba5f9d59b..aff231e8769cb3112df48aad79f4517853ef61d1 100644
--- a/src/svalue.c
+++ b/src/svalue.c
@@ -65,7 +65,7 @@ static int pike_isnan(double x)
 #endif /* HAVE__ISNAN */
 #endif /* HAVE_ISNAN */
 
-RCSID("$Id: svalue.c,v 1.143 2002/07/02 17:56:20 grubba Exp $");
+RCSID("$Id: svalue.c,v 1.144 2002/08/15 14:49:25 marcus Exp $");
 
 struct svalue dest_ob_zero = {
   T_INT, 0,
@@ -125,7 +125,7 @@ PMOD_EXPORT void really_free_short_svalue_ptr(void **s, TYPE_T type)
       
 #ifdef PIKE_DEBUG
     default:
-	fatal("Bad type in free_short_svalue.\n");
+	Pike_fatal("Bad type in free_short_svalue.\n");
 #endif
   }
 }
@@ -194,7 +194,7 @@ PMOD_EXPORT void really_free_svalue(struct svalue *s)
     
 #ifdef PIKE_DEBUG
   default:
-    fatal("Bad type in free_svalue.\n");
+    Pike_fatal("Bad type in free_svalue.\n");
 #endif
   }
 }
@@ -341,7 +341,7 @@ PMOD_EXPORT void assign_svalues_no_free(struct svalue *to,
     size_t e;
     for(e=0;e<num;e++)
       if(!(type_hint & (1<<from[e].type)))
-	 fatal("Type hint lies (%ld %ld %d)!\n",
+	 Pike_fatal("Type hint lies (%ld %ld %d)!\n",
 	       DO_NOT_WARN((long)e),
 	       (long)type_hint, from[e].type);
   }
@@ -683,7 +683,7 @@ PMOD_EXPORT int is_identical(const struct svalue *a, const struct svalue *b)
     return a->u.float_number == b->u.float_number;
 
   default:
-    fatal("Unknown type %x\n",a->type);
+    Pike_fatal("Unknown type %x\n",a->type);
     return 0; /* make gcc happy */
   }
 
@@ -814,7 +814,7 @@ PMOD_EXPORT int is_eq(const struct svalue *a, const struct svalue *b)
     return a->u.float_number == b->u.float_number;
 
   default:
-    fatal("Unknown type %x\n",a->type);
+    Pike_fatal("Unknown type %x\n",a->type);
     return 0; /* make gcc happy */
   }
 }
@@ -890,7 +890,7 @@ PMOD_EXPORT int low_is_equal(const struct svalue *a,
       return multiset_equal_p(a->u.multiset, b->u.multiset, p);
       
     default:
-      fatal("Unknown type in is_equal.\n");
+      Pike_fatal("Unknown type in is_equal.\n");
   }
   return 1; /* survived */
 }
@@ -1083,7 +1083,7 @@ PMOD_EXPORT int is_lt(const struct svalue *a, const struct svalue *b)
     /* At this point both a and b have type T_TYPE */
 #ifdef PIKE_DEBUG
     if ((a->type != T_TYPE) || (b->type != T_TYPE)) {
-      fatal("Unexpected types in comparison.\n");
+      Pike_fatal("Unexpected types in comparison.\n");
     }
 #endif /* PIKE_DEBUG */
     /* fall through */
@@ -1463,7 +1463,7 @@ static void low_check_short_svalue(const union anything *u, TYPE_T type)
   {
   case T_STRING:
     if(!debug_findstring(u->string))
-      fatal("Shared string not shared!\n");
+      Pike_fatal("Shared string not shared!\n");
     break;
 
   default:
@@ -1489,7 +1489,7 @@ void check_short_svalue(const union anything *u, TYPE_T type)
 {
   if(type<=MAX_REF_TYPE &&
      ((PIKE_INT32_ALIGNMENT-1) & (ptrdiff_t)(u->refs)))
-    fatal("Odd pointer! type=%d u->refs=%p\n",type,u->refs);
+    Pike_fatal("Odd pointer! type=%d u->refs=%p\n",type,u->refs);
 
   check_refs2(u,type);
   low_check_short_svalue(u,type);
@@ -1500,7 +1500,7 @@ void debug_check_svalue(const struct svalue *s)
   check_type(s->type);
   if(s->type<=MAX_REF_TYPE &&
      ((PIKE_INT32_ALIGNMENT-1) & (ptrdiff_t)(s->u.refs)))
-    fatal("Odd pointer! type=%d u->refs=%p\n",s->type,s->u.refs);
+    Pike_fatal("Odd pointer! type=%d u->refs=%p\n",s->type,s->u.refs);
 
   check_refs(s);
   low_check_short_svalue(& s->u, s->type);
@@ -1564,7 +1564,7 @@ PMOD_EXPORT void real_gc_xmark_svalues(const struct svalue *s, ptrdiff_t num)
       /* Fall through to T_OBJECT. */
 
 #define DO_FUNC_SHORT_SVALUE(U, T, ZAP, GC_DO)				\
-      fatal("Cannot have a function in a short svalue.\n");
+      Pike_fatal("Cannot have a function in a short svalue.\n");
 
 #define DO_CHECK_OBJ(U, T, ZAP, GC_DO)					\
       GC_DO(U.object);							\
@@ -1896,7 +1896,7 @@ void real_gc_free_svalue(struct svalue *s)
 #ifdef PIKE_DEBUG
   if (Pike_in_gc != GC_PASS_MARK && Pike_in_gc != GC_PASS_CYCLE &&
       Pike_in_gc != GC_PASS_ZAP_WEAK)
-    fatal("gc_free_svalue() called in invalid gc pass.\n");
+    Pike_fatal("gc_free_svalue() called in invalid gc pass.\n");
 #endif
   if (((1 << s->type) & BIT_COMPLEX) && *(s->u.refs) == 1)
     gc_delayed_free(s->u.refs, s->type);
@@ -1908,7 +1908,7 @@ void real_gc_free_short_svalue(union anything *u, TYPE_T type)
 #ifdef PIKE_DEBUG
   if (Pike_in_gc != GC_PASS_MARK && Pike_in_gc != GC_PASS_CYCLE &&
       Pike_in_gc != GC_PASS_ZAP_WEAK)
-    fatal("gc_free_short_svalue() called in invalid gc pass.\n");
+    Pike_fatal("gc_free_short_svalue() called in invalid gc pass.\n");
 #endif
   if (((1 << type) & BIT_COMPLEX) && *u->refs == 1)
     gc_delayed_free(u->refs, type);
diff --git a/src/svalue.h b/src/svalue.h
index 1f1e1363c3e4dea096b1eba137425d8548fd896a..e35db84e538099a642d6ab760fa663a049219a87 100644
--- a/src/svalue.h
+++ b/src/svalue.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: svalue.h,v 1.105 2002/06/25 14:26:41 grubba Exp $
+ * $Id: svalue.h,v 1.106 2002/08/15 14:49:25 marcus Exp $
  */
 #ifndef SVALUE_H
 #define SVALUE_H
@@ -309,7 +309,7 @@ do{ \
 #ifdef PIKE_DEBUG
 PMOD_EXPORT extern void describe(void *); /* defined in gc.c */
 PMOD_EXPORT extern const char msg_type_error[];
-#define check_type(T) if(T > MAX_TYPE && T!=T_LVALUE && T!=T_SHORT_LVALUE && T!=T_VOID && T!=T_DELETED && T!=T_ARRAY_LVALUE) fatal(msg_type_error,T)
+#define check_type(T) if(T > MAX_TYPE && T!=T_LVALUE && T!=T_SHORT_LVALUE && T!=T_VOID && T!=T_DELETED && T!=T_ARRAY_LVALUE) Pike_fatal(msg_type_error,T)
 
 #define check_svalue(S) debug_check_svalue(dmalloc_check_svalue(S,DMALLOC_LOCATION()))
 
@@ -317,14 +317,14 @@ PMOD_EXPORT extern const char msg_sval_obj_wo_refs[];
 #define check_refs(S) do {\
  if((S)->type <= MAX_REF_TYPE && (!(S)->u.refs || (S)->u.refs[0] < 0)) { \
  describe((S)->u.refs); \
- fatal(msg_sval_obj_wo_refs); \
+ Pike_fatal(msg_sval_obj_wo_refs); \
 } }while(0)
 
 PMOD_EXPORT extern const char msg_ssval_obj_wo_refs[];
 #define check_refs2(S,T) do { \
 if((T) <= MAX_REF_TYPE && (S)->refs && (S)->refs[0] <= 0) {\
  describe((S)->refs); \
- fatal(msg_ssval_obj_wo_refs); \
+ Pike_fatal(msg_ssval_obj_wo_refs); \
 } }while(0)
 
 #ifdef DEBUG_MALLOC
diff --git a/src/threads.c b/src/threads.c
index 3a8f778ee523c6513b7336690987196fa01e9898..06621184229312154e5020cbb93b9424c6e7bd3d 100644
--- a/src/threads.c
+++ b/src/threads.c
@@ -1,5 +1,5 @@
 #include "global.h"
-RCSID("$Id: threads.c,v 1.179 2002/06/17 15:42:39 grubba Exp $");
+RCSID("$Id: threads.c,v 1.180 2002/08/15 14:49:26 marcus Exp $");
 
 PMOD_EXPORT int num_threads = 1;
 PMOD_EXPORT int threads_disabled = 0;
@@ -118,7 +118,7 @@ PMOD_EXPORT int co_wait(COND_T *c, MUTEX_T *m)
 
 #ifdef PIKE_DEBUG
   if(me.next)
-    fatal("Wait on event return prematurely!!\n");
+    Pike_fatal("Wait on event return prematurely!!\n");
 #endif
 
   return 0;
@@ -340,7 +340,7 @@ void exit_threads_disable(struct object *o)
     }
 #ifdef PIKE_DEBUG
   } else {
-    fatal("exit_threads_disable() called too many times!\n");
+    Pike_fatal("exit_threads_disable() called too many times!\n");
 #endif /* PIKE_DEBUG */
   }
 }
@@ -430,13 +430,13 @@ PMOD_EXPORT void thread_table_insert(struct object *o)
   unsigned INT32 h = thread_table_hash(&s->id);
 #ifdef PIKE_DEBUG
   if(h>=THREAD_TABLE_SIZE)
-    fatal("thread_table_hash failed miserably!\n");
+    Pike_fatal("thread_table_hash failed miserably!\n");
   if(thread_state_for_id(s->id))
   {
     if(thread_state_for_id(s->id) == s)
-      fatal("Registring thread twice!\n");
+      Pike_fatal("Registring thread twice!\n");
     else
-      fatal("Forgot to unregister thread!\n");
+      Pike_fatal("Forgot to unregister thread!\n");
   }
 /*  dumpmem("thread_table_insert",&s->id, sizeof(THREAD_T)); */
 #endif
@@ -471,7 +471,7 @@ PMOD_EXPORT struct thread_state *thread_state_for_id(THREAD_T tid)
 #endif
 #ifdef PIKE_DEBUG
   if(h>=THREAD_TABLE_SIZE)
-    fatal("thread_table_hash failed miserably!\n");
+    Pike_fatal("thread_table_hash failed miserably!\n");
 #endif
   mt_lock( & thread_table_lock );
   if(thread_table_chains[h] == NULL)
@@ -624,11 +624,11 @@ static void check_threads(struct callback *cb, void *arg, void * arg2)
 #ifdef DEBUG
   if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
     debug_list_all_threads();
-    fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+    Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
   }
 
   if(Pike_interpreter.backlink != OBJ2THREAD(Pike_interpreter.thread_id))
-    fatal("Hashlink is wrong!\n");
+    Pike_fatal("Hashlink is wrong!\n");
 #endif
 
   THREADS_ALLOW();
@@ -639,7 +639,7 @@ static void check_threads(struct callback *cb, void *arg, void * arg2)
   DO_IF_DEBUG(
     if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
       debug_list_all_threads();
-      fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+      Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
     } )
 }
 
@@ -663,7 +663,7 @@ TH_RETURN_TYPE new_thread_func(void * data)
 #endif /* HAVE_BROKEN_LINUX_THREAD_EUID */
   
   if((tmp=mt_lock_interpreter()))
-    fatal("Failed to lock interpreter, return value=%d, errno=%d\n",tmp,
+    Pike_fatal("Failed to lock interpreter, return value=%d, errno=%d\n",tmp,
 #ifdef __NT__
 	  GetLastError()
 #else
@@ -687,12 +687,12 @@ TH_RETURN_TYPE new_thread_func(void * data)
       THREAD_T self = th_self();
 
       if( Pike_interpreter.thread_id && !th_equal( OBJ2THREAD(Pike_interpreter.thread_id)->id, self) )
-	fatal("Current thread is wrong. %lx %lx\n",
+	Pike_fatal("Current thread is wrong. %lx %lx\n",
 	      (long)OBJ2THREAD(Pike_interpreter.thread_id)->id, (long)self);
 	
       if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
 	debug_list_all_threads();
-	fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+	Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
       }
     }
 #endif
@@ -708,7 +708,7 @@ TH_RETURN_TYPE new_thread_func(void * data)
   DO_IF_DEBUG(
     if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
       debug_list_all_threads();
-      fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+      Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
     } )
 
 
@@ -738,7 +738,7 @@ TH_RETURN_TYPE new_thread_func(void * data)
   DO_IF_DEBUG(
     if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
       debug_list_all_threads();
-      fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+      Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
     } )
 
 
@@ -959,7 +959,7 @@ void f_mutex_lock(INT32 args)
   DO_IF_DEBUG(
     if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
       debug_list_all_threads();
-      fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+      Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
     } )
 
   m=THIS_MUTEX;
@@ -1004,7 +1004,7 @@ void f_mutex_lock(INT32 args)
   DO_IF_DEBUG(
     if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
       debug_list_all_threads();
-      fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+      Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
     } )
 
   if(m->key)
@@ -1029,7 +1029,7 @@ void f_mutex_lock(INT32 args)
   DO_IF_DEBUG(
     if(thread_for_id(th_self()) != Pike_interpreter.thread_id) {
       debug_list_all_threads();
-      fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
+      Pike_fatal("thread_for_id() (or Pike_interpreter.thread_id) failed! %p != %p\n",thread_for_id(th_self()),Pike_interpreter.thread_id) ;
     } )
 
   THREADS_FPRINTF(1, (stderr, "LOCK k:%08x, m:%08x(%08x), t:%08x\n",
@@ -1187,7 +1187,7 @@ void exit_mutex_key_obj(struct object *o)
 
 #ifdef PIKE_DEBUG
     if(mut->key != o)
-      fatal("Mutex unlock from wrong key %p != %p!\n",THIS_KEY->mut->key,o);
+      Pike_fatal("Mutex unlock from wrong key %p != %p!\n",THIS_KEY->mut->key,o);
 #endif
     mut->key=0;
     if (THIS_KEY->owner) {
@@ -1646,7 +1646,7 @@ static TH_RETURN_TYPE farm(void *_a)
 
   do
   {
-/*     if(farmers == me) fatal("Ouch!\n"); */
+/*     if(farmers == me) Pike_fatal("Ouch!\n"); */
 /*     fprintf(stderr, "farm_begin %p\n",me ); */
     me->harvest( me->field );
 /*     fprintf(stderr, "farm_end %p\n", me); */
@@ -1690,7 +1690,7 @@ static struct farmer *new_farmer(void (*fun)(void *), void *args)
 
   if (!me) {
     /* Out of memory */
-    fatal("new_farmer(): Out of memory!\n");
+    Pike_fatal("new_farmer(): Out of memory!\n");
   }
 
   dmalloc_accept_leak(me);
@@ -1712,7 +1712,7 @@ static struct farmer *new_farmer(void (*fun)(void *), void *args)
 
 PMOD_EXPORT void th_farm(void (*fun)(void *), void *here)
 {
-  if(!fun) fatal("The farmers don't known how to handle empty fields\n");
+  if(!fun) Pike_fatal("The farmers don't known how to handle empty fields\n");
   mt_lock( &rosie );
   if(farmers)
   {
@@ -1798,7 +1798,7 @@ void th_init(void)
   mutex_key->flags|=PROGRAM_DESTRUCT_IMMEDIATE;
 #ifdef PIKE_DEBUG
   if(!mutex_key)
-    fatal("Failed to initialize mutex_key program!\n");
+    Pike_fatal("Failed to initialize mutex_key program!\n");
 #endif
 
   START_NEW_PROGRAM_ID(THREAD_MUTEX);
@@ -1858,7 +1858,7 @@ void th_init(void)
   add_ref(thread_local_prog);
   end_class("thread_local", 0);
   if(!thread_local_prog)
-    fatal("Failed to initialize thread_local program!\n");
+    Pike_fatal("Failed to initialize thread_local program!\n");
   ADD_EFUN("thread_local", f_thread_local,
 	   tFunc(tNone,tObjIs_THREAD_LOCAL),
 	   OPT_EXTERNAL_DEPEND);
@@ -1904,7 +1904,7 @@ void th_init(void)
   add_integer_constant("THREAD_EXITED", THREAD_EXITED, 0);
 
   if(!mutex_key)
-    fatal("Failed to initialize thread program!\n");
+    Pike_fatal("Failed to initialize thread program!\n");
 
   Pike_interpreter.thread_id=clone_object(thread_id_prog,0);
   SWAP_OUT_THREAD(OBJ2THREAD(Pike_interpreter.thread_id)); /* Init struct */