diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c
index 9d0893e..8e9ec0f 100644
--- a/Modules/_bsddb.c
+++ b/Modules/_bsddb.c
@@ -283,7 +283,7 @@
 
 
 
-staticforward PyTypeObject DB_Type, DBCursor_Type, DBEnv_Type, DBTxn_Type, DBLock_Type;
+static PyTypeObject DB_Type, DBCursor_Type, DBEnv_Type, DBTxn_Type, DBLock_Type;
 
 #define DBObject_Check(v)           ((v)->ob_type == &DB_Type)
 #define DBCursorObject_Check(v)     ((v)->ob_type == &DBCursor_Type)
@@ -4823,7 +4823,7 @@
     return NULL;
 }
 
-statichere PyTypeObject DB_Type = {
+static PyTypeObject DB_Type = {
     PyObject_HEAD_INIT(NULL)
     0,                  /*ob_size*/
     "DB",               /*tp_name*/
@@ -4856,7 +4856,7 @@
 };
 
 
-statichere PyTypeObject DBCursor_Type = {
+static PyTypeObject DBCursor_Type = {
     PyObject_HEAD_INIT(NULL)
     0,                  /*ob_size*/
     "DBCursor",         /*tp_name*/
@@ -4889,7 +4889,7 @@
 };
 
 
-statichere PyTypeObject DBEnv_Type = {
+static PyTypeObject DBEnv_Type = {
     PyObject_HEAD_INIT(NULL)
     0,          /*ob_size*/
     "DBEnv",            /*tp_name*/
@@ -4921,7 +4921,7 @@
 #endif
 };
 
-statichere PyTypeObject DBTxn_Type = {
+static PyTypeObject DBTxn_Type = {
     PyObject_HEAD_INIT(NULL)
     0,          /*ob_size*/
     "DBTxn",    /*tp_name*/
@@ -4954,7 +4954,7 @@
 };
 
 
-statichere PyTypeObject DBLock_Type = {
+static PyTypeObject DBLock_Type = {
     PyObject_HEAD_INIT(NULL)
     0,          /*ob_size*/
     "DBLock",   /*tp_name*/
diff --git a/Modules/_csv.c b/Modules/_csv.c
index da5ae0d..469cd64 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -83,7 +83,7 @@
 	int strict;		/* raise exception on bad CSV */
 } DialectObj;
 
-staticforward PyTypeObject Dialect_Type;
+static PyTypeObject Dialect_Type;
 
 typedef struct {
         PyObject_HEAD
@@ -101,7 +101,7 @@
 	unsigned long line_num;	/* Source-file line number */
 } ReaderObj;
 
-staticforward PyTypeObject Reader_Type;
+static PyTypeObject Reader_Type;
 
 #define ReaderObject_Check(v)   ((v)->ob_type == &Reader_Type)
 
@@ -118,7 +118,7 @@
 	int num_fields;		/* number of fields in record */
 } WriterObj;        
 
-staticforward PyTypeObject Writer_Type;
+static PyTypeObject Writer_Type;
 
 /*
  * DIALECT class
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index bf88af8..3a7d3ef 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -591,7 +591,7 @@
 	return Py_None;
 }
 
-staticforward PyObject *_byref(PyObject *);
+static PyObject *_byref(PyObject *);
 
 static PyObject *
 PointerType_from_param(PyObject *type, PyObject *value)
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index 06ae24c..7e36ea3 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -267,7 +267,7 @@
 
 } ElementObject;
 
-staticforward PyTypeObject Element_Type;
+static PyTypeObject Element_Type;
 
 #define Element_CheckExact(op) ((op)->ob_type == &Element_Type)
 
@@ -1396,7 +1396,7 @@
     element_setslice,
 };
 
-statichere PyTypeObject Element_Type = {
+static PyTypeObject Element_Type = {
     PyObject_HEAD_INIT(NULL)
     0, "Element", sizeof(ElementObject), 0,
     /* methods */
@@ -1435,7 +1435,7 @@
 
 } TreeBuilderObject;
 
-staticforward PyTypeObject TreeBuilder_Type;
+static PyTypeObject TreeBuilder_Type;
 
 #define TreeBuilder_CheckExact(op) ((op)->ob_type == &TreeBuilder_Type)
 
@@ -1805,7 +1805,7 @@
     return Py_FindMethod(treebuilder_methods, (PyObject*) self, name);
 }
 
-statichere PyTypeObject TreeBuilder_Type = {
+static PyTypeObject TreeBuilder_Type = {
     PyObject_HEAD_INIT(NULL)
     0, "TreeBuilder", sizeof(TreeBuilderObject), 0,
     /* methods */
@@ -1849,7 +1849,7 @@
 
 } XMLParserObject;
 
-staticforward PyTypeObject XMLParser_Type;
+static PyTypeObject XMLParser_Type;
 
 /* helpers */
 
@@ -2580,7 +2580,7 @@
     return res;
 }
 
-statichere PyTypeObject XMLParser_Type = {
+static PyTypeObject XMLParser_Type = {
     PyObject_HEAD_INIT(NULL)
     0, "XMLParser", sizeof(XMLParserObject), 0,
     /* methods */
diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c
index dddab8e..17c71e9 100644
--- a/Modules/_lsprof.c
+++ b/Modules/_lsprof.c
@@ -117,7 +117,7 @@
 #define POF_BUILTINS    0x004
 #define POF_NOMEMORY    0x100
 
-staticforward PyTypeObject PyProfiler_Type;
+static PyTypeObject PyProfiler_Type;
 
 #define PyProfiler_Check(op) PyObject_TypeCheck(op, &PyProfiler_Type)
 #define PyProfiler_CheckExact(op) ((op)->ob_type == &PyProfiler_Type)
@@ -798,7 +798,7 @@
     is, in seconds).\n\
 ");
 
-statichere PyTypeObject PyProfiler_Type = {
+static PyTypeObject PyProfiler_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0,                                      /* ob_size */
 	"_lsprof.Profiler",                     /* tp_name */
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index b85e158..e8efaa7 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -720,7 +720,7 @@
 	PyObject *string; /* This cannot cause cycles. */
 } PyTclObject;
 
-staticforward PyTypeObject PyTclObject_Type;
+static PyTypeObject PyTclObject_Type;
 #define PyTclObject_Check(v)	((v)->ob_type == &PyTclObject_Type)
 
 static PyObject *
@@ -858,7 +858,7 @@
 	{0}
 };
 
-statichere PyTypeObject PyTclObject_Type = {
+static PyTypeObject PyTclObject_Type = {
 	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
 	"_tkinter.Tcl_Obj",		/*tp_name*/
diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c
index 199ee65..b011729 100644
--- a/Modules/datetimemodule.c
+++ b/Modules/datetimemodule.c
@@ -2931,7 +2931,7 @@
 static char tzinfo_doc[] =
 PyDoc_STR("Abstract base class for time zone info objects.");
 
-statichere PyTypeObject PyDateTime_TZInfoType = {
+static PyTypeObject PyDateTime_TZInfoType = {
 	PyObject_HEAD_INIT(NULL)
 	0,					/* ob_size */
 	"datetime.tzinfo",			/* tp_name */
@@ -3451,7 +3451,7 @@
 	(inquiry)time_nonzero,			/* nb_nonzero */
 };
 
-statichere PyTypeObject PyDateTime_TimeType = {
+static PyTypeObject PyDateTime_TimeType = {
 	PyObject_HEAD_INIT(NULL)
 	0,					/* ob_size */
 	"datetime.time",			/* tp_name */
@@ -4536,7 +4536,7 @@
 	0,					/* nb_nonzero */
 };
 
-statichere PyTypeObject PyDateTime_DateTimeType = {
+static PyTypeObject PyDateTime_DateTimeType = {
 	PyObject_HEAD_INIT(NULL)
 	0,					/* ob_size */
 	"datetime.datetime",			/* tp_name */
diff --git a/PC/_subprocess.c b/PC/_subprocess.c
index b675b88..1ca4ece 100644
--- a/PC/_subprocess.c
+++ b/PC/_subprocess.c
@@ -53,7 +53,7 @@
 	HANDLE handle;
 } sp_handle_object;
 
-staticforward PyTypeObject sp_handle_type;
+static PyTypeObject sp_handle_type;
 
 static PyObject*
 sp_handle_new(HANDLE handle)
@@ -127,7 +127,7 @@
 
 static PyNumberMethods sp_handle_as_number;
 
-statichere PyTypeObject sp_handle_type = {
+static PyTypeObject sp_handle_type = {
 	PyObject_HEAD_INIT(NULL)
 	0,				/*ob_size*/
 	"_subprocess_handle", sizeof(sp_handle_object), 0,
