diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index f61b0de..1569529 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -433,8 +433,8 @@
  * `tkMain.c'.
  */
 
-static void EnableEventHook(); /* Forward */
-static void DisableEventHook(); /* Forward */
+static void EnableEventHook(void); /* Forward */
+static void DisableEventHook(void); /* Forward */
 
 static TkappObject *
 Tkapp_New(char *screenName, char *baseName, char *className, int interactive)
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index c211d23..a956ada 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -786,7 +786,7 @@
 };
 
 DL_EXPORT(void)
-initbsddb() {
+initbsddb(void) {
 	PyObject *m, *d;
 
 	Bsddbtype.ob_type = &PyType_Type;
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index d6a03d3..a7b275d 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -180,7 +180,7 @@
 #define Pdata_Check(O) ((O)->ob_type == &PdataType)
 
 static PyObject *
-Pdata_New() {
+Pdata_New(void) {
     Pdata *self;
 
     UNLESS (self = PyObject_New(Pdata, &PdataType)) return NULL;
@@ -193,7 +193,7 @@
 }
 
 static int 
-stackUnderflow() {
+stackUnderflow(void) {
     PyErr_SetString(UnpicklingError, "unpickling stack underflow");
     return -1;
 }
@@ -2418,7 +2418,7 @@
 }
 
 static int
-bad_readline() {
+bad_readline(void) {
     PyErr_SetString(UnpicklingError, "pickle data was truncated");
     return -1;
 }
@@ -4516,7 +4516,7 @@
 #define DL_EXPORT(RTYPE) RTYPE
 #endif
 DL_EXPORT(void)
-initcPickle() {
+initcPickle(void) {
     PyObject *m, *d, *v;
     char *rev="1.71";
     PyObject *format_version;
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index bda60dd..5be59f4 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -639,7 +639,7 @@
 #define DL_EXPORT(RTYPE) RTYPE
 #endif
 DL_EXPORT(void)
-initcStringIO() {
+initcStringIO(void) {
   PyObject *m, *d, *v;
 
 
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c
index cad99ba..b95c0ba 100644
--- a/Modules/dbmmodule.c
+++ b/Modules/dbmmodule.c
@@ -272,7 +272,7 @@
 };
 
 DL_EXPORT(void)
-initdbm() {
+initdbm(void) {
 	PyObject *m, *d;
 
 	m = Py_InitModule("dbm", dbmmodule_methods);
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index 2c5bdbe..6d2e6ce 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -474,7 +474,7 @@
 };
 
 DL_EXPORT(void)
-initgdbm() {
+initgdbm(void) {
     PyObject *m, *d;
 
     Dbmtype.ob_type = &PyType_Type;
diff --git a/Modules/sunaudiodev.c b/Modules/sunaudiodev.c
index 4f9d2bb..2774e05 100644
--- a/Modules/sunaudiodev.c
+++ b/Modules/sunaudiodev.c
@@ -51,7 +51,7 @@
 
 staticforward PyTypeObject Sadtype;
 staticforward PyTypeObject Sadstatustype;
-static sadstatusobject *sads_alloc();	/* Forward */
+static sadstatusobject *sads_alloc(void);	/* Forward */
 
 static PyObject *SunAudioError;
 
@@ -364,7 +364,7 @@
 /* ----------------------------------------------------------------- */
 
 static sadstatusobject *
-sads_alloc() {
+sads_alloc(void) {
 	return PyObject_New(sadstatusobject, &Sadstatustype);
 }
 
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index cb6f54e..189476c 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -91,7 +91,7 @@
 
 /* Forward declarations */
 static int floatsleep(double);
-static double floattime();
+static double floattime(double);
 
 /* For Y2K check */
 static PyObject *moddict;
