diff --git a/Mac/Include/pyconfig.h b/Mac/Include/pyconfig.h
index 90b56c4..eb53725 100644
--- a/Mac/Include/pyconfig.h
+++ b/Mac/Include/pyconfig.h
@@ -469,12 +469,7 @@
 #undef HAVE_HSTRERROR
 
 /* Define if you have the hypot function.  */
-#ifndef __MC68K__
-/* 68K hypot definition (and implementation) are unuseable
-** because they use 10-byte floats.
-*/
 #define HAVE_HYPOT
-#endif
 
 /* Define if you have the inet_pton function.  */
 #undef HAVE_INET_PTON
diff --git a/Mac/Modules/macspeechmodule.c b/Mac/Modules/macspeechmodule.c
index a6fbddd..b6c6c2c 100644
--- a/Mac/Modules/macspeechmodule.c
+++ b/Mac/Modules/macspeechmodule.c
@@ -42,10 +42,8 @@
 #include "pascal.h"
 #endif /* __MWERKS__ */
 
-#ifdef __powerc
 #include <CodeFragments.h>
 int lib_available;
-#endif /* __powerc */
 
 /* Somehow the Apple Fix2X and X2Fix don't do what I expect */
 #define fixed2double(x) (((double)(x))/32768.0)
@@ -60,9 +58,7 @@
 	OSErr err;
 	long result;
 
-#ifdef __powerc
 	lib_available = ((ProcPtr)SpeakString != (ProcPtr)0);
-#endif
 	err = Gestalt(gestaltSpeechAttr, &result);
 	if ( err == noErr && (result & (1<<gestaltSpeechMgrPresent)))
 		return 1;
@@ -75,12 +71,10 @@
 		PyErr_SetString(ms_error_object, "Speech Mgr not available");
 		return 0;
 	}
-#ifdef __powerc
 	if ( !lib_available ) {
 		PyErr_SetString(ms_error_object, "Speech Mgr available, but shared lib missing");
 		return 0;
 	}
-#endif
 	return 1;
 }
 
diff --git a/Mac/Python/macapplication.c b/Mac/Python/macapplication.c
index 3923af2..4c71234 100644
--- a/Mac/Python/macapplication.c
+++ b/Mac/Python/macapplication.c
@@ -27,10 +27,6 @@
 #include <Resources.h>
 #include <CodeFragments.h>
 
-#ifdef __CFM68K__
-#pragma lib_export on
-#endif
-
 extern void PyMac_InitApplication(void);
 #ifdef USE_MAC_APPLET_SUPPORT
 extern void PyMac_InitApplet(void);
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index b81cd85..a8993f5 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -46,19 +46,7 @@
 #include <Menus.h>
 #include <TextUtils.h>
 #include <LowMem.h>
-#ifdef __CFM68K__
-/* cfm68k InterfaceLib exports GetEventQueue, but Events.h doesn't know this
-** and defines it as GetEvQHdr (which is correct for PPC). This fix is for
-** CW9, check that the workaround is still needed for the next release.
-*/
-#define GetEvQHdr GetEventQueue
-#endif /* __CFM68K__ */
-
 #include <Events.h>
-
-#ifdef __CFM68K__
-#undef GetEventQueue
-#endif /* __CFM68K__ */
 #else
 #include <Carbon/Carbon.h>
 #endif
@@ -99,11 +87,7 @@
 ** raise a MemoryError.
 */
 #ifndef MINIMUM_STACK_SIZE
-#ifdef __powerc
 #define MINIMUM_STACK_SIZE 8192
-#else
-#define MINIMUM_STACK_SIZE 4096
-#endif
 #endif
 
 #if TARGET_API_MAC_CARBON
diff --git a/Mac/Python/macimport.c b/Mac/Python/macimport.c
index b47a694..82d6438 100644
--- a/Mac/Python/macimport.c
+++ b/Mac/Python/macimport.c
@@ -145,15 +145,9 @@
 	if ( ok && dataptr != NULL ) {
 		HLock(h);
 		/* XXXX Unsafe if resource not correctly formatted! */
-#ifdef __CFM68K__
-		/* for cfm68k we take the second pstring */
-		*dataptr = *((*h)+(**h)+1);
-		memcpy(dataptr+1, (*h)+(**h)+2, (int)*dataptr);
-#else
 		/* for ppc we take the first pstring */
 		*dataptr = **h;
 		memcpy(dataptr+1, (*h)+1, (int)*dataptr);
-#endif
 		HUnlock(h);
 	}
 	if ( filerh != -1 )
