diff --git a/Parser/intrcheck.c b/Parser/intrcheck.c
index 8dbeb5f..ee14eca 100644
--- a/Parser/intrcheck.c
+++ b/Parser/intrcheck.c
@@ -24,6 +24,11 @@
 
 /* Check for interrupts */
 
+#ifdef THINK_C
+#define macintosh
+#endif
+
+
 #ifdef MSDOS
 
 /* This might work for MS-DOS (untested though): */
@@ -49,19 +54,26 @@
 #endif
 
 
-#ifdef THINK_C
+#ifdef macintosh
 
+#ifdef THINK_C
 /* This is for THINK C 4.0.
    For 3.0, you may have to remove the signal stuff. */
-
 #include <MacHeaders>
+#else
+/* This is for MPW 3.1 */
+/* XXX Untested */
+#include <OSEvents.h>
+#include <SysEqu.h>
+#endif
+
 #include <signal.h>
 #include "sigtype.h"
 
 static int interrupted;
 
 static SIGTYPE
-intcatcher(sig)
+intcatcher(ig)
 	int sig;
 {
 	interrupted = 1;
@@ -80,17 +92,15 @@
 {
 	register EvQElPtr q;
 	
-	/* This is like THINK C 4.0's <console.h>.
-	   I'm not sure why FlushEvents must be called from asm{}. */
-	for (q = (EvQElPtr)EventQueue.qHead; q; q = (EvQElPtr)q->qLink) {
+	/* This is like THINK C 4.0's <console.h> */
+	/* q = (EvQElPtr) EventQueue.qHead; */
+	q = (EvQElPtr) GetEvQHdr()->qHead;
+	
+	for (; q; q = (EvQElPtr)q->qLink) {
 		if (q->evtQWhat == keyDown &&
 				(char)q->evtQMessage == '.' &&
 				(q->evtQModifiers & cmdKey) != 0) {
-			
-			asm {
-				moveq	#keyDownMask,d0
-				_FlushEvents
-			}
+			FlushEvents(keyDownMask, 0);
 			interrupted = 1;
 			break;
 		}
@@ -104,7 +114,7 @@
 
 #define OK
 
-#endif /* THINK_C */
+#endif /* macintosh */
 
 
 #ifndef OK
diff --git a/Parser/pgenmain.c b/Parser/pgenmain.c
index c1bd486..da6aa2e 100644
--- a/Parser/pgenmain.c
+++ b/Parser/pgenmain.c
@@ -42,7 +42,7 @@
 
 /* Forward */
 grammar *getgrammar PROTO((char *filename));
-#ifdef THINK_C
+#ifdef macintosh
 int main PROTO((int, char **));
 char *askfile PROTO((void));
 #endif
@@ -57,7 +57,7 @@
 	FILE *fp;
 	char *filename;
 	
-#ifdef THINK_C
+#ifdef macintosh
 	filename = askfile();
 #else
 	if (argc != 2) {
@@ -115,7 +115,7 @@
 	return g;
 }
 
-#ifdef THINK_C
+#ifdef macintosh
 char *
 askfile()
 {
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 62a3da0..ccff9d1 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -37,7 +37,7 @@
 #include "tokenizer.h"
 #include "errcode.h"
 
-#ifdef THINK_C
+#ifdef macintosh
 #define TABSIZE 4
 #endif
 
