diff --git a/src/global.h b/src/global.h
index f8ad1bff3f572435e5d88da4b1a8137c0fc890ff..616313ca39463ce8cc3c36552af6824d0010a0a6 100644
--- a/src/global.h
+++ b/src/global.h
@@ -33,7 +33,19 @@ struct array;
 struct svalue;
 
 #include "machine.h"
-#include "config.h"
+
+/*
+ * Max number of local variables in a function.
+ * Currently there is no support for more than 256
+ */
+#define MAX_LOCAL	256
+
+/*
+ * define NO_GC to get rid of garbage collection
+ */
+#ifndef NO_GC
+#define GC2
+#endif
 
 /* AIX requires this to be the first thing in the file.  */
 #ifdef __GNUC__
diff --git a/src/interpret.c b/src/interpret.c
index da83adb17e81d6c9c5d234d72656fc11a71d99f8..d1250faac907a905a27c3f712c3fd1c21085734e 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.21 1997/01/27 01:15:37 hubbe Exp $");
+RCSID("$Id: interpret.c,v 1.22 1997/01/29 01:02:03 hubbe Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -45,6 +45,11 @@ RCSID("$Id: interpret.c,v 1.21 1997/01/27 01:15:37 hubbe Exp $");
 #endif
 #endif
 
+/*
+ * Define the default evaluator stack size, used for just about everything.
+ */
+#define EVALUATOR_STACK_SIZE	100000
+
 #define TRACE_LEN (100 + t_flag * 10)
 
 
diff --git a/src/language.yacc b/src/language.yacc
index 4ec773649ab5ff720da0269af875fd47f19bcbed..06b1972dfcb9d8f9904cf596b260d589f8138241 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -156,7 +156,7 @@
 /* This is the grammar definition of Pike. */
 
 #include "global.h"
-RCSID("$Id: language.yacc,v 1.19 1997/01/27 01:18:01 hubbe Exp $");
+RCSID("$Id: language.yacc,v 1.20 1997/01/29 01:05:58 hubbe Exp $");
 #ifdef HAVE_MEMORY_H
 #include <memory.h>
 #endif
@@ -177,6 +177,10 @@ RCSID("$Id: language.yacc,v 1.19 1997/01/27 01:18:01 hubbe Exp $");
 
 #define YYMAXDEPTH	600
 
+#ifdef DEBUG
+#define YYDEBUG 1
+#endif
+
 static void push_locals();
 static void pop_locals();
 void free_all_local_names();
diff --git a/src/program.c b/src/program.c
index 34c306c86a05051dca90acd6dec610715062611d..21da12ce803ce5c2f3e413b7fd6b8447488c4704 100644
--- a/src/program.c
+++ b/src/program.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: program.c,v 1.16 1997/01/28 03:11:50 hubbe Exp $");
+RCSID("$Id: program.c,v 1.17 1997/01/29 01:09:19 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -27,6 +27,12 @@ RCSID("$Id: program.c,v 1.16 1997/01/28 03:11:50 hubbe Exp $");
 #include <errno.h>
 #include <fcntl.h>
 
+/*
+ * Define the size of the cache that is used for method lookup.
+ */
+#define FIND_FUNCTION_HASHSIZE 4711
+
+
 #define FILE_STATE
 #define PROGRAM_STATE