Remove "static forward" declaration. Move constructors
after the type objects.
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 1a28724..edc43df 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -3,7 +3,7 @@
    Written and maintained by Raymond D. Hettinger <python@rcn.com>
    Derived from Lib/sets.py and Objects/dictobject.c.
 
-   Copyright (c) 2003-5 Python Software Foundation.
+   Copyright (c) 2003-6 Python Software Foundation.
    All rights reserved.
 */
 
@@ -719,8 +719,6 @@
 
 /***** Set iterator type ***********************************************/
 
-static PyTypeObject PySetIter_Type; /* Forward */
-
 typedef struct {
 	PyObject_HEAD
 	PySetObject *si_set; /* Set to NULL when iterator is exhausted */
@@ -729,20 +727,6 @@
 	long len;
 } setiterobject;
 
-static PyObject *
-set_iter(PySetObject *so)
-{
-	setiterobject *si = PyObject_New(setiterobject, &PySetIter_Type);
-	if (si == NULL)
-		return NULL;
-	Py_INCREF(so);
-	si->si_set = so;
-	si->si_used = so->used;
-	si->si_pos = 0;
-	si->len = so->used;
-	return (PyObject *)si;
-}
-
 static void
 setiter_dealloc(setiterobject *si)
 {
@@ -838,6 +822,20 @@
 	0,
 };
 
+static PyObject *
+set_iter(PySetObject *so)
+{
+	setiterobject *si = PyObject_New(setiterobject, &PySetIter_Type);
+	if (si == NULL)
+		return NULL;
+	Py_INCREF(so);
+	si->si_set = so;
+	si->si_used = so->used;
+	si->si_pos = 0;
+	si->len = so->used;
+	return (PyObject *)si;
+}
+
 static int
 set_update_internal(PySetObject *so, PyObject *other)
 {