diff --git a/Include/pythonrun.h b/Include/pythonrun.h
index 2d7d2b6..7076dfe 100644
--- a/Include/pythonrun.h
+++ b/Include/pythonrun.h
@@ -78,6 +78,9 @@
 
 DL_IMPORT(int) Py_FdIsInteractive(FILE *, char *);
 
+/* Bootstrap */
+PyAPI_FUNC(int) Py_Main(int argc, char **argv);
+
 /* In getpath.c */
 PyAPI_FUNC(char *) Py_GetProgramFullPath(void);
 PyAPI_FUNC(char *) Py_GetPrefix(void);
diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c
index aed3c42..d663293 100644
--- a/Modules/_codecsmodule.c
+++ b/Modules/_codecsmodule.c
@@ -703,7 +703,7 @@
     {NULL, NULL}		/* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_codecs(void)
 {
     Py_InitModule("_codecs", _codecs_functions);
diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index e616d90..08c5f09 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -445,7 +445,7 @@
 
 /* Initialization function for the module */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_curses_panel(void)
 {
     PyObject *m, *d, *v;
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index f819a9e..65f60f0 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -2474,7 +2474,7 @@
 
 /* Initialization function for the module */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_curses(void)
 {
 	PyObject *m, *d, *v, *c_api_object;
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index 5ed3eaf..ab86fa4 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -649,7 +649,7 @@
   {NULL, NULL}
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_locale(void)
 {
     PyObject *m, *d, *x;
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index baaa097..ad0b59b 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -473,7 +473,7 @@
 "Implementation module for SSL socket operations.  See the socket module\n\
 for documentation.");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_ssl(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/_weakref.c b/Modules/_weakref.c
index 31e63d1..86bd036 100644
--- a/Modules/_weakref.c
+++ b/Modules/_weakref.c
@@ -109,7 +109,7 @@
 };
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_weakref(void)
 {
     PyObject *m;
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index e757d9f..5bb5e2c 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1908,7 +1908,7 @@
 };
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initarray(void)
 {
 	PyObject *m;
diff --git a/Modules/audioop.c b/Modules/audioop.c
index 9adbc7b..52824b8 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -1369,7 +1369,7 @@
 	{ 0,          0 }
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initaudioop(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/binascii.c b/Modules/binascii.c
index ec07a71..0fe85fc 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -1313,7 +1313,7 @@
 /* Initialization function for the module (*must* be called initbinascii) */
 PyDoc_STRVAR(doc_binascii, "Conversion between binary data and ASCII");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initbinascii(void)
 {
 	PyObject *m, *d, *x;
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index a43d7b9..f8d9af8 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -4789,10 +4789,10 @@
 	return 0;
 }
 
-#ifndef DL_EXPORT	/* declarations for DLL import/export */
-#define DL_EXPORT(RTYPE) RTYPE
+#ifndef PyMODINIT_FUNC	/* declarations for DLL import/export */
+#define PyMODINIT_FUNC void
 #endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initcPickle(void) 
 {
 	PyObject *m, *d, *di, *v, *k;
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 2f85f41..dfab89a 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -701,10 +701,10 @@
   &Otype,
 };
 
-#ifndef DL_EXPORT	/* declarations for DLL import/export */
-#define DL_EXPORT(RTYPE) RTYPE
+#ifndef PyMODINIT_FUNC	/* declarations for DLL import/export */
+#define PyMODINIT_FUNC void
 #endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initcStringIO(void) {
   PyObject *m, *d, *v;
 
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
index 5bb08f2..8faa6bf 100644
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -391,7 +391,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initcmath(void)
 {
 	PyObject *m;
diff --git a/Modules/cryptmodule.c b/Modules/cryptmodule.c
index a1eaced..050a356 100644
--- a/Modules/cryptmodule.c
+++ b/Modules/cryptmodule.c
@@ -37,7 +37,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initcrypt(void)
 {
 	Py_InitModule("crypt", crypt_methods);
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c
index dde5b49..d05a1bd 100644
--- a/Modules/dbmmodule.c
+++ b/Modules/dbmmodule.c
@@ -339,7 +339,7 @@
 	{ 0, 0 },
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initdbm(void) {
 	PyObject *m, *d, *s;
 
diff --git a/Modules/dlmodule.c b/Modules/dlmodule.c
index ea083e2..927f4c0 100644
--- a/Modules/dlmodule.c
+++ b/Modules/dlmodule.c
@@ -209,7 +209,7 @@
 	Py_XDECREF(v);
 }
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initdl(void)
 {
 	PyObject *m, *d, *x;
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index 74d4f0f..cd3d2fa 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -57,7 +57,7 @@
 To map error codes to error messages, use the function os.strerror(),\n\
 e.g. os.strerror(2) could return 'No such file or directory'.");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initerrno(void)
 {
 	PyObject *m, *d, *de;
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index f1d89cc..360b54e 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -462,7 +462,7 @@
 	return 0;
 }
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initfcntl(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index b3e7d1f..2fe118d 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -2126,7 +2126,7 @@
 	{NULL,			NULL}		/* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initfl(void)
 {
 	Py_InitModule("fl", forms_methods);
diff --git a/Modules/fpectlmodule.c b/Modules/fpectlmodule.c
index c4b85d1..c29bcef 100644
--- a/Modules/fpectlmodule.c
+++ b/Modules/fpectlmodule.c
@@ -86,7 +86,7 @@
 static void fpe_reset(Sigfunc *);
 
 static PyObject *fpe_error;
-DL_EXPORT(void) initfpectl(void);
+PyMODINIT_FUNC initfpectl(void);
 static PyObject *turnon_sigfpe            (PyObject *self,PyObject *args);
 static PyObject *turnoff_sigfpe           (PyObject *self,PyObject *args);
 
@@ -249,7 +249,7 @@
     }
 }
 
-DL_EXPORT(void) initfpectl(void)
+PyMODINIT_FUNC initfpectl(void)
 {
     PyObject *m, *d;
     m = Py_InitModule("fpectl", fpectl_methods);
diff --git a/Modules/fpetestmodule.c b/Modules/fpetestmodule.c
index 565d0b7..aa14dd8 100644
--- a/Modules/fpetestmodule.c
+++ b/Modules/fpetestmodule.c
@@ -44,7 +44,7 @@
 #include "Python.h"
 
 static PyObject *fpe_error;
-DL_EXPORT(void) initfpetest(void);
+PyMODINIT_FUNC initfpetest(void);
 static PyObject *test(PyObject *self,PyObject *args);
 static double db0(double);
 static double overflow(double);
@@ -172,7 +172,7 @@
   return a;
 }
 
-DL_EXPORT(void) initfpetest(void)
+PyMODINIT_FUNC initfpetest(void)
 {
     PyObject *m, *d;
 
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index 6e85ed3..accf438 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -504,7 +504,7 @@
     { 0, 0 },
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initgdbm(void) {
     PyObject *m, *d, *s;
 
diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c
index c834009..8a88968 100644
--- a/Modules/grpmodule.c
+++ b/Modules/grpmodule.c
@@ -156,7 +156,7 @@
 complete membership information.)");
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initgrp(void)
 {
     PyObject *m, *d;
diff --git a/Modules/imageop.c b/Modules/imageop.c
index 7b925b8..8c83cc3 100644
--- a/Modules/imageop.c
+++ b/Modules/imageop.c
@@ -696,7 +696,7 @@
 };
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initimageop(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/main.c b/Modules/main.c
index cc07c29..cebb17b 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -105,7 +105,7 @@
 
 /* Main program */
 
-DL_EXPORT(int)
+int
 Py_Main(int argc, char **argv)
 {
 	int c;
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 88b439f..cbb0000 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -334,7 +334,7 @@
 "This module is always available.  It provides access to the\n"
 "mathematical functions defined by the C standard.");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initmath(void)
 {
 	PyObject *m, *d, *v;
diff --git a/Modules/md5module.c b/Modules/md5module.c
index aa2bef8..8ca2386 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -253,7 +253,7 @@
 
 /* Initialize this module. */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initmd5(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c
index 0cb6495..5974df1 100644
--- a/Modules/mpzmodule.c
+++ b/Modules/mpzmodule.c
@@ -1644,7 +1644,7 @@
 
 /* Initialize this module. */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initmpz(void)
 {
 	PyObject *module;
diff --git a/Modules/operator.c b/Modules/operator.c
index fbe8c14..c1bf468 100644
--- a/Modules/operator.c
+++ b/Modules/operator.c
@@ -219,7 +219,7 @@
 
 /* Initialization function for the module (*must* be called initoperator) */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initoperator(void)
 {
         /* Create the module and add the functions */
diff --git a/Modules/pcremodule.c b/Modules/pcremodule.c
index 383dde8..656539a 100644
--- a/Modules/pcremodule.c
+++ b/Modules/pcremodule.c
@@ -610,7 +610,7 @@
 
 /* Initialization function for the module (*must* be called initpcre) */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initpcre(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index bf178f8..9b7640f 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3211,6 +3211,7 @@
 {
 	PROCESS_INFORMATION piProcInfo;
 	STARTUPINFO siStartInfo;
+	DWORD dwProcessFlags = 0;  /* no NEW_CONSOLE by default for Ctrl+C handling */
 	char *s1,*s2, *s3 = " /c ";
 	const char *szConsoleSpawn = "w9xpopen.exe";
 	int i;
@@ -3303,6 +3304,16 @@
 				s1,
 				s3,
 				cmdstring);
+			/* Not passing CREATE_NEW_CONSOLE has been known to
+			   cause random failures on win9x.  Specifically a 
+			   dialog:
+			   "Your program accessed mem currently in use at xxx"
+			   and a hopeful warning about the stability of your
+			   system.
+			   Cost is Ctrl+C wont kill children, but anyone
+			   who cares can have a go!
+			*/
+			dwProcessFlags |= CREATE_NEW_CONSOLE;
 		}
 	}
 
@@ -3328,7 +3339,7 @@
 			  NULL,
 			  NULL,
 			  TRUE,
-			  0, /* no new console so Ctrl+C kills child too */
+			  dwProcessFlags,
 			  NULL,
 			  NULL,
 			  &siStartInfo,
@@ -6746,7 +6757,7 @@
 #define MODNAME "posix"
 #endif
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 INITFUNC(void)
 {
 	PyObject *m, *v;
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index b51b7f9..cb139bb 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -157,7 +157,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initpwd(void)
 {
 	PyObject *m;
diff --git a/Modules/python.c b/Modules/python.c
index 316dd3b..f9262e8 100644
--- a/Modules/python.c
+++ b/Modules/python.c
@@ -2,8 +2,6 @@
 
 #include "Python.h"
 
-extern DL_EXPORT(int) Py_Main(int, char **);
-
 int
 main(int argc, char **argv)
 {
diff --git a/Modules/readline.c b/Modules/readline.c
index afd80db..a2efd47 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -652,7 +652,7 @@
 PyDoc_STRVAR(doc_module,
 "Importing this module enables command line editing using GNU readline.");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initreadline(void)
 {
 	PyObject *m;
diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index 4c7035e..db54161 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -642,7 +642,7 @@
 	{NULL,		NULL}		     /* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initregex(void)
 {
 	PyObject *m, *d, *v;
diff --git a/Modules/resource.c b/Modules/resource.c
index 5ed98a1..b1dd5d1 100644
--- a/Modules/resource.c
+++ b/Modules/resource.c
@@ -210,7 +210,7 @@
 
 /* Module initialization */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initresource(void)
 {
 	PyObject *m, *v;
diff --git a/Modules/rgbimgmodule.c b/Modules/rgbimgmodule.c
index 596ea4f..904c64b 100644
--- a/Modules/rgbimgmodule.c
+++ b/Modules/rgbimgmodule.c
@@ -751,7 +751,7 @@
 };
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initrgbimg(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/rotormodule.c b/Modules/rotormodule.c
index 7137b00..dcca0c6 100644
--- a/Modules/rotormodule.c
+++ b/Modules/rotormodule.c
@@ -615,7 +615,7 @@
 };
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initrotor(void)
 {
 	Rotor_Type.ob_type = &PyType_Type;
diff --git a/Modules/shamodule.c b/Modules/shamodule.c
index 14e51ea..5b9040d 100644
--- a/Modules/shamodule.c
+++ b/Modules/shamodule.c
@@ -525,7 +525,7 @@
 
 #define insint(n,v) { PyModule_AddIntConstant(m,n,v); }
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initsha(void)
 {
     PyObject *m;
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 25d5d94..0f9574f 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -469,7 +469,7 @@
 A signal handler function is called with two arguments:\n\
 the first is the signal number, the second is the interrupted stack frame.");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initsignal(void)
 {
 	PyObject *m, *d, *x;
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 8024006..b9358b7 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -3008,7 +3008,7 @@
 "Implementation module for socket operations.  See the socket module\n\
 for documentation.");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_socket(void)
 {
 	PyObject *m;
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c
index 09bcc3d..8eb64a0 100644
--- a/Modules/stropmodule.c
+++ b/Modules/stropmodule.c
@@ -1203,7 +1203,7 @@
 };
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initstrop(void)
 {
 	PyObject *m, *s;
diff --git a/Modules/structmodule.c b/Modules/structmodule.c
index 5d4de11..093cd7b 100644
--- a/Modules/structmodule.c
+++ b/Modules/structmodule.c
@@ -1499,7 +1499,7 @@
 
 /* Module initialization */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initstruct(void)
 {
 	PyObject *m;
diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c
index e24e72f..9854a1c 100644
--- a/Modules/symtablemodule.c
+++ b/Modules/symtablemodule.c
@@ -43,7 +43,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 init_symtable(void)
 {
 	PyObject *m;
diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index 2d886e1..75deb1b 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -155,7 +155,7 @@
 
 /* Initialization function for the module */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initsyslog(void)
 {
 	PyObject *m;
diff --git a/Modules/termios.c b/Modules/termios.c
index ed78ece..3ace25c 100644
--- a/Modules/termios.c
+++ b/Modules/termios.c
@@ -892,7 +892,7 @@
 };
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 PyInit_termios(void)
 {
 	PyObject *m;
diff --git a/Modules/threadmodule.c b/Modules/threadmodule.c
index b872dd0..896d4fa 100644
--- a/Modules/threadmodule.c
+++ b/Modules/threadmodule.c
@@ -360,7 +360,7 @@
 unlock it.  A thread attempting to lock a lock that it has already locked\n\
 will block until another thread unlocks it.  Deadlocks may ensue.");
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initthread(void)
 {
 	PyObject *m, *d;
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index eb48c2b..13da2ff 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -620,7 +620,7 @@
 strptime() -- parse string to time tuple according to format specification");
 
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 inittime(void)
 {
 	PyObject *m;
diff --git a/Modules/timingmodule.c b/Modules/timingmodule.c
index 4e10e31..56e057a 100644
--- a/Modules/timingmodule.c
+++ b/Modules/timingmodule.c
@@ -52,7 +52,7 @@
 };
 
 
-DL_EXPORT(void) inittiming(void)
+PyMODINIT_FUNC inittiming(void)
 {
 	(void)Py_InitModule("timing", timing_methods);
 }
diff --git a/Modules/xreadlinesmodule.c b/Modules/xreadlinesmodule.c
index 8c6b91f..3009768 100644
--- a/Modules/xreadlinesmodule.c
+++ b/Modules/xreadlinesmodule.c
@@ -168,7 +168,7 @@
 	{NULL, NULL}
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initxreadlines(void)
 {
 	XReadlinesObject_Type.ob_type = &PyType_Type;
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
index 2264dfb..125d2ec 100644
--- a/Modules/xxmodule.c
+++ b/Modules/xxmodule.c
@@ -218,7 +218,7 @@
 
 /* Initialization function for the module (*must* be called initxx) */
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initxx(void)
 {
 	PyObject *m;
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index 9013467..c826b6e 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -263,7 +263,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-DL_EXPORT(void)
+PyMODINIT_FUNC
 initxxsubtype(void)
 {
 	PyObject *m;
diff --git a/PC/WinMain.c b/PC/WinMain.c
index 7ee1ad6..00dc18d 100644
--- a/PC/WinMain.c
+++ b/PC/WinMain.c
@@ -5,8 +5,6 @@
 
 #include "Python.h"
 
-extern int Py_Main(int, char **);
-
 int WINAPI WinMain(
     HINSTANCE hInstance,      /* handle to current instance */
     HINSTANCE hPrevInstance,  /* handle to previous instance */
