diff --git a/Python/ceval.c b/Python/ceval.c
index 8ed4663..b8d6de2 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1652,7 +1652,7 @@
 	err_setval(error_type, error_value);
 }
 
-void
+static void
 mergelocals()
 {
 	locals_2_fast(current_frame, 1);
diff --git a/Python/compile.c b/Python/compile.c
index a8cd4e9..0eb06cb 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -39,8 +39,7 @@
 #include "structmember.h"
 
 #include <ctype.h>
-
-extern int errno;
+#include <errno.h>
 
 #define OFF(x) offsetof(codeobject, x)
 
diff --git a/Python/errors.c b/Python/errors.c
index 9f53255..6b8a183 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -59,9 +59,6 @@
 #include "modsupport.h"
 
 #include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
 
 #include "errcode.h"
 
diff --git a/Python/fmod.c b/Python/fmod.c
index 8301b94..027c662 100644
--- a/Python/fmod.c
+++ b/Python/fmod.c
@@ -27,8 +27,6 @@
 #include <math.h>
 #include <errno.h>
 
-extern int errno;
-
 double
 fmod(x, y)
 	double x, y;
diff --git a/Python/frozenmain.c b/Python/frozenmain.c
index 8bc136a..2aee249 100644
--- a/Python/frozenmain.c
+++ b/Python/frozenmain.c
@@ -38,7 +38,6 @@
 {
 	char *p;
 	int n, inspect, sts;
-	int n;
 
 	if ((p = getenv("PYTHONDEBUG")) && *p != '\0')
 		debugging = 1;
@@ -63,8 +62,7 @@
 	else
 		sts = 0;
 
-	if (inspect && isatty((int)fileno(stdin)) &&
-	    (filename != NULL || command != NULL))
+	if (inspect && isatty((int)fileno(stdin)))
 		sts = run(stdin, "<stdin>") != 0;
 
 	goaway(sts);
diff --git a/Python/getcwd.c b/Python/getcwd.c
index 675c4a6..e3c3bfc 100644
--- a/Python/getcwd.c
+++ b/Python/getcwd.c
@@ -30,8 +30,6 @@
 #include <stdio.h>
 #include <errno.h>
 
-extern int errno;
-
 #ifndef NO_GETWD
 
 /* Default: Version for BSD systems -- use getwd() */
diff --git a/Python/marshal.c b/Python/marshal.c
index 93503d1..e61815c 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -34,7 +34,6 @@
 #include "marshal.h"
 
 #include <errno.h>
-extern int errno;
 
 #define TYPE_NULL	'0'
 #define TYPE_NONE	'N'
diff --git a/Python/modsupport.c b/Python/modsupport.c
index d998ad8..beb5c34 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -314,6 +314,8 @@
 	return ok;
 }
 
+#ifdef UNUSED
+
 int
 getlongtuplearg(args, a, n)
 	object *args;
@@ -394,6 +396,8 @@
 	return 1;
 }
 
+#endif /* UNUSED */
+
 
 /* Generic function to create a value -- the inverse of getargs() */
 /* After an original idea and first implementation by Steven Miale */
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index b85be92..d518f24 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -284,7 +284,7 @@
 	return run_err_node(err, n, filename, globals, locals);
 }
 
-object *
+static object *
 run_err_node(err, n, filename, globals, locals)
 	int err;
 	node *n;
@@ -298,7 +298,7 @@
 	return run_node(n, filename, globals, locals);
 }
 
-object *
+static object *
 run_node(n, filename, globals, locals)
 	node *n;
 	char *filename;
@@ -307,7 +307,7 @@
 	return eval_node(n, filename, globals, locals);
 }
 
-object *
+static object *
 eval_node(n, filename, globals, locals)
 	node *n;
 	char *filename;
@@ -392,7 +392,7 @@
 extern int threads_started;
 #endif
 
-void
+static void
 cleanup()
 {
 	object *exitfunc = sysget("exitfunc");
@@ -461,7 +461,7 @@
 }
 
 #ifdef HANDLE_SIGNALS
-SIGTYPE
+static SIGTYPE
 sighandler(sig)
 	int sig;
 {
@@ -472,7 +472,7 @@
 }
 #endif
 
-void
+static void
 initsigs()
 {
 	initintr();
