diff --git a/Modules/cryptmodule.c b/Modules/cryptmodule.c
index 770965e..d3e0793 100644
--- a/Modules/cryptmodule.c
+++ b/Modules/cryptmodule.c
@@ -12,7 +12,7 @@
 static PyObject *crypt_crypt(PyObject *self, PyObject *args)
 {
 	char *word, *salt; 
-	extern char * crypt();
+	extern char * crypt(const char *, const char *);
 
 	if (!PyArg_Parse(args, "(ss)", &word, &salt)) {
 		return NULL;
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index ffb4d4d..8bfd83a 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -1672,7 +1672,7 @@
 }
 
 static PyObject *
-forms_do_or_check_forms(PyObject *dummy, PyObject *args, FL_OBJECT *(*func)())
+forms_do_or_check_forms(PyObject *dummy, PyObject *args, FL_OBJECT *(*func)(void))
 {
 	FL_OBJECT *generic;
 	genericobject *g;
@@ -1751,7 +1751,7 @@
 
 #ifdef UNUSED
 static PyObject *
-fl_call(void (*func)(), PyObject *args)
+fl_call(void (*func)(void), PyObject *args)
 {
 	if (!PyArg_NoArgs(args))
 		return NULL;
@@ -2058,7 +2058,7 @@
 
 
 static PyObject *
-forms_file_selector_func(PyObject *args, char *(*func)())
+forms_file_selector_func(PyObject *args, char *(*func)(void))
 {
 	char *str;
 
diff --git a/Modules/getpath.c b/Modules/getpath.c
index 3c418d6..f96f7ed 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -349,7 +349,7 @@
 static void
 calculate_path(void)
 {
-    extern char *Py_GetProgramName();
+    extern char *Py_GetProgramName(void);
 
     static char delimiter[2] = {DELIM, '\0'};
     static char separator[2] = {SEP, '\0'};
diff --git a/Modules/nismodule.c b/Modules/nismodule.c
index 3649fd5..36959cf 100644
--- a/Modules/nismodule.c
+++ b/Modules/nismodule.c
@@ -20,7 +20,7 @@
 
 #ifdef __sgi
 /* This is missing from rpcsvc/ypclnt.h */
-extern int yp_get_default_domain();
+extern int yp_get_default_domain(char **);
 #endif
 
 static PyObject *NisError;
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index b5414af..91ffef1 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -963,7 +963,7 @@
 /*  X (',' X) [',']
  */
 static int
-validate_repeating_list(node *tree, int ntype, int (*vfunc)(),
+validate_repeating_list(node *tree, int ntype, int (*vfunc)(node *),
                         const char *const name)
 {
     int nch = NCH(tree);
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index c22be54..fef4bbb 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -130,11 +130,11 @@
 
 #ifdef HAVE_UNISTD_H
 /* XXX These are for SunOS4.1.3 but shouldn't hurt elsewhere */
-extern int rename();
-extern int pclose();
-extern int lstat();
-extern int symlink();
-extern int fsync();
+extern int rename(const char *, const char *);
+extern int pclose(FILE *);
+extern int lstat(const char *, struct stat *);
+extern int symlink(const char *, const char *);
+extern int fsync(int fd);
 #else /* !HAVE_UNISTD_H */
 #if defined(PYCC_VACPP)
 extern int mkdir(char *);
diff --git a/Modules/python.c b/Modules/python.c
index 7b456a9..316dd3b 100644
--- a/Modules/python.c
+++ b/Modules/python.c
@@ -2,7 +2,7 @@
 
 #include "Python.h"
 
-extern DL_EXPORT(int) Py_Main();
+extern DL_EXPORT(int) Py_Main(int, char **);
 
 int
 main(int argc, char **argv)
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 1adde19..2860f37 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -27,7 +27,7 @@
 
 #ifdef __sgi
 /* This is missing from unistd.h */
-extern void bzero();
+extern void bzero(void *, int);
 #endif
 
 #ifndef DONT_HAVE_SYS_TYPES_H
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 50cd3eb..5d6f24a 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -111,7 +111,7 @@
 #endif
 
 #if !defined(MS_WINDOWS) && !defined(PYOS_OS2) && !defined(__BEOS__)
-extern int gethostname(); /* For Solaris, at least */
+extern int gethostname(char *, size_t); /* For Solaris, at least */
 #endif
 
 #if defined(PYCC_VACPP)
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index b9aba51..005189a 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -49,7 +49,7 @@
 #ifdef HAVE_FTIME
 #include <sys/timeb.h>
 #if !defined(MS_WINDOWS) && !defined(PYOS_OS2)
-extern int ftime();
+extern int ftime(struct timeb *);
 #endif /* MS_WINDOWS */
 #endif /* HAVE_FTIME */
 
@@ -384,7 +384,8 @@
 #ifdef HAVE_STRPTIME
 
 #if 0
-extern char *strptime(); /* Enable this if it's not declared in <time.h> */
+/* Enable this if it's not declared in <time.h> */
+extern char *strptime(const char *, const char *, struct tm *);
 #endif
 
 static PyObject *
