diff --git a/src/interpret.c b/src/interpret.c
index 74b85e3b5bffe4e04ae241eb110d150f1fd9aaf2..81280d78a7408c6e9735f4994d4767bec0059668 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.11 1996/11/19 09:35:22 hubbe Exp $");
+RCSID("$Id: interpret.c,v 1.12 1996/11/21 23:50:33 hubbe Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -89,7 +89,11 @@ void init_interpreter()
       fd=open("/dev/zero",O_RDONLY);
       if(fd >= 0) break;
       if(errno != EINTR)
-	fatal("Failed to open /dev/zero.\n");
+      {
+	evaluator_stack=0;
+	mark_stack=0;
+	goto use_malloc;
+      }
     }
   }
 #endif
@@ -107,6 +111,7 @@ void init_interpreter()
   mark_stack=0;
 #endif
 
+use_malloc:
   if(!evaluator_stack)
   {
     evaluator_stack=(struct svalue *)xalloc(stack_size*sizeof(struct svalue));