diff --git a/tools/qwaq/main.c b/tools/qwaq/main.c
index 08d20a32e..00ec32e62 100644
--- a/tools/qwaq/main.c
+++ b/tools/qwaq/main.c
@@ -6,10 +6,16 @@
 #include <QF/sys.h>
 #include <QF/zone.h>
 
+#define MAX_EDICTS 1024
+
 progs_t progs;
 void *membase;
 int memsize = 16*1024*1024;
 
+edict_t *edicts;
+int num_edicts;
+int reserved_edicts;
+
 void BI_Init (progs_t *progs);
 
 extern char *type_name[];
@@ -34,6 +40,10 @@ main ()
 	PR_Init ();
 	BI_Init (&progs);
 
+	progs.edicts = &edicts;
+	progs.num_edicts = &num_edicts;
+	progs.reserved_edicts = &reserved_edicts;
+
 	f = fopen ("qwaq.dat", "rb");
 	if (f) {
 		fseek (f, 0, SEEK_END);
@@ -47,6 +57,9 @@ main ()
 	}
 	if (!progs.progs)
 		Sys_Error ("couldn't load %s\n", "qwaq.dat");
+
+	*progs.edicts = PR_InitEdicts (&progs, MAX_EDICTS);
+
 	for (i = 0; i < progs.progs->numstatements; i++)
 		PR_PrintStatement (&progs, &progs.pr_statements[i]);
 	printf ("\n");
diff --git a/tools/qwaq/main.qc b/tools/qwaq/main.qc
index 69cf3aed5..3e0eadad0 100644
--- a/tools/qwaq/main.qc
+++ b/tools/qwaq/main.qc
@@ -14,3 +14,16 @@ float () main =
 	s = s + "\n";
 	print (s);
 };
+
+float () CheckExistence =
+{
+	return 1;
+};
+
+void () test =
+{
+	if (CheckExistence() == 0) {
+		return;
+	}
+	local entity p;
+};