diff --git a/Mac/Modules/macconfig.c b/Mac/Modules/macconfig.c
index 9dc15c0..f860977 100644
--- a/Mac/Modules/macconfig.c
+++ b/Mac/Modules/macconfig.c
@@ -53,9 +53,6 @@
 extern void initaudioop();
 extern void initimageop();
 extern void initrgbimg();
-#ifdef USE_STDWIN
-extern void initstdwin();
-#endif
 extern void initmd5();
 extern void initmpz();
 extern void initrotor();
@@ -84,9 +81,6 @@
 extern void initpcre();
 extern void initunicodedata();
 extern void init_codecs();
-#ifdef THINK
-extern void initmacconsole();
-#endif
 #ifdef USE_MACCTB
 extern void initctb();
 #endif
@@ -191,9 +185,6 @@
 	{"audioop", initaudioop},
 	{"imageop", initimageop},
 	{"rgbimg", initrgbimg},
-#ifdef USE_STDWIN
-	{"stdwin", initstdwin},
-#endif
 	{"md5", initmd5},
 	{"rotor", initrotor},
 	{"new", initnew},
@@ -206,10 +197,6 @@
 	{"pcre", initpcre},
 	{"unicodedata", initunicodedata},
 	{"_codecs", init_codecs},
-#ifdef THINK_C
-/* This is an interface to the Think runtime */
-	{"macconsole", initmacconsole},
-#endif
 #ifdef USE_MACCTB
 	{"ctb", initctb},
 #endif
diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c
index 13dde93..8021aa1 100644
--- a/Mac/Modules/macfsmodule.c
+++ b/Mac/Modules/macfsmodule.c
@@ -34,10 +34,6 @@
 
 #include "getapplbycreator.h"
 
-#ifdef THINK_C
-#define FileFilterUPP FileFilterProcPtr
-#endif
-
 static PyObject *ErrorObject;
 
 /* ----------------------------------------------------- */
diff --git a/Mac/Modules/macmodule.c b/Mac/Modules/macmodule.c
index 74c1243..a100cf5 100644
--- a/Mac/Modules/macmodule.c
+++ b/Mac/Modules/macmodule.c
@@ -31,17 +31,6 @@
 #include <string.h>
 #include <errno.h>
 
-#ifdef THINK_C
-#include "unix.h"
-#undef S_IFMT
-#undef S_IFDIR
-#undef S_IFCHR
-#undef S_IFBLK
-#undef S_IFREG
-#undef S_ISDIR
-#undef S_ISREG
-#endif /* THINK_C */
-
 #ifndef TARGET_API_MAC_CARBON_NOTYET
 /* XXXX Skip for Carbon, for now */
 #include "macstat.h"
@@ -116,7 +105,7 @@
 int rmdir Py_PROTO((const char *path));
 int sync Py_PROTO((void));
 
-#if defined(THINK_C) || defined(__SC__)
+#if defined(__SC__)
 int unlink Py_PROTO((char *));
 #else
 int unlink Py_PROTO((const char *));
diff --git a/Mac/Modules/macosmodule.c b/Mac/Modules/macosmodule.c
index 4c7f2aa..07a2e47 100644
--- a/Mac/Modules/macosmodule.c
+++ b/Mac/Modules/macosmodule.c
@@ -359,61 +359,6 @@
 #include <EPPC.h>
 #include <Events.h>
 
-#ifdef USE_STDWIN
-
-extern void (*_w_high_level_event_proc)(EventRecord *);
-
-static PyObject *MacOS_HighLevelEventHandler = NULL;
-
-static void
-MacOS_HighLevelEventProc(EventRecord *e)
-{
-	if (MacOS_HighLevelEventHandler != NULL) {
-		PyObject *args = PyMac_BuildEventRecord(e);
-		PyObject *res;
-		if (args == NULL)
-			res = NULL;
-		else {
-			res = PyEval_CallObject(MacOS_HighLevelEventHandler, args);
-			Py_DECREF(args);
-		}
-		if (res == NULL) {
-			PySys_WriteStderr("Exception in MacOS_HighLevelEventProc:\n");
-			PyErr_Print();
-		}
-		else
-			Py_DECREF(res);
-	}
-}
-
-/* XXXX Need to come here from PyMac_DoYield too... */
-
-static PyObject *
-MacOS_SetHighLevelEventHandler(self, args)
-	PyObject *self;
-	PyObject *args;
-{
-	PyObject *previous = MacOS_HighLevelEventHandler;
-	PyObject *next = NULL;
-	if (!PyArg_ParseTuple(args, "|O", &next))
-		return NULL;
-	if (next == Py_None)
-		next = NULL;
-	Py_INCREF(next);
-	MacOS_HighLevelEventHandler = next;
-	if (next == NULL)
-		_w_high_level_event_proc = NULL;
-	else
-		_w_high_level_event_proc = MacOS_HighLevelEventProc;
-	if (previous == NULL) {
-		Py_INCREF(Py_None);
-		previous = Py_None;
-	}
-	return previous;
-}
-
-#endif /* USE_STDWIN */
-
 #ifndef TARGET_API_MAC_CARBON
 static char accepthle_doc[] = "Get arguments of pending high-level event";
 
@@ -737,9 +682,6 @@
 #endif
 	{"GetCreatorAndType",		MacOS_GetCreatorAndType, 1,	getcrtp_doc},
 	{"SetCreatorAndType",		MacOS_SetCreatorAndType, 1,	setcrtp_doc},
-#ifdef USE_STDWIN
-	{"SetHighLevelEventHandler",	MacOS_SetHighLevelEventHandler, 1},
-#endif
 	{"SchedParams",			MacOS_SchedParams,	1,	schedparams_doc},
 	{"EnableAppswitch",		MacOS_EnableAppswitch,	1,	appswitch_doc},
 	{"SetEventHandler",		MacOS_SetEventHandler,	1,	setevh_doc},
