diff --git a/src/interpret.h b/src/interpret.h
index b8e5c71098c064920e677da8bce2e22fe5f893f4..6b52e670e93d26e38f62e9e8f1a178af026e3ac8 100644
--- a/src/interpret.h
+++ b/src/interpret.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: interpret.h,v 1.66 2000/08/24 04:04:41 hubbe Exp $
+ * $Id: interpret.h,v 1.67 2000/09/12 17:06:08 grubba Exp $
  */
 #ifndef INTERPRET_H
 #define INTERPRET_H
@@ -100,6 +100,15 @@ struct external_variable_context
     low_error("C stack overflow.\n");					\
   }while(0)
 
+#define fatal_check_c_stack(X) do { 			\
+    ptrdiff_t x_= 					\
+      ((char *)&x_) + STACK_DIRECTION * (X) - Pike_interpreter.stack_top ; \
+    x_*=STACK_DIRECTION;						\
+    if(x_>0) {								\
+      fatal("C stack overflow.\n");					\
+    }									\
+  }while(0)
+
 
 #define pop_stack() do{ free_svalue(--Pike_sp); debug_check_stack(); }while(0)