Allow setting the auto dispose flag on window objects.
diff --git a/Mac/Modules/win/_Winmodule.c b/Mac/Modules/win/_Winmodule.c
index 258845d..d1b3ada 100644
--- a/Mac/Modules/win/_Winmodule.c
+++ b/Mac/Modules/win/_Winmodule.c
@@ -14,9 +14,9 @@
 
 /* Macro to test whether a weak-loaded CFM function exists */
 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\
-    	PyErr_SetString(PyExc_NotImplementedError, \
-    	"Not available in this shared library/OS version"); \
-    	return NULL; \
+        PyErr_SetString(PyExc_NotImplementedError, \
+        "Not available in this shared library/OS version"); \
+        return NULL; \
     }} while(0)
 
 
@@ -2300,6 +2300,24 @@
 	return _res;
 }
 
+static PyObject *WinObj_AutoDispose(WindowObject *_self, PyObject *_args)
+{
+	PyObject *_res = NULL;
+
+	int onoff, old = 0;
+	if (!PyArg_ParseTuple(_args, "i", &onoff))
+		return NULL;
+	if ( _self->ob_freeit )
+		old = 1;
+	if ( onoff )
+		_self->ob_freeit = PyMac_AutoDisposeWindow;
+	else
+		_self->ob_freeit = NULL;
+	_res = Py_BuildValue("i", old);
+	return _res;
+
+}
+
 static PyMethodDef WinObj_methods[] = {
 	{"GetWindowOwnerCount", (PyCFunction)WinObj_GetWindowOwnerCount, 1,
 	 PyDoc_STR("() -> (UInt32 outCount)")},
@@ -2540,6 +2558,8 @@
 	 PyDoc_STR("(short hGlobal, short vGlobal, Boolean front) -> None")},
 	{"ShowWindow", (PyCFunction)WinObj_ShowWindow, 1,
 	 PyDoc_STR("() -> None")},
+	{"AutoDispose", (PyCFunction)WinObj_AutoDispose, 1,
+	 PyDoc_STR("(int)->int. Automatically DisposeHandle the object on Python object cleanup")},
 	{NULL, NULL, 0}
 };
 
diff --git a/Mac/Modules/win/winedit.py b/Mac/Modules/win/winedit.py
index d2551af..d79356f 100644
--- a/Mac/Modules/win/winedit.py
+++ b/Mac/Modules/win/winedit.py
@@ -48,5 +48,24 @@
 )
 methods.append(f)
 
+#
+# A method to set the auto-dispose flag
+#
+AutoDispose_body = """
+int onoff, old = 0;
+if (!PyArg_ParseTuple(_args, "i", &onoff))
+	return NULL;
+if ( _self->ob_freeit )
+	old = 1;
+if ( onoff )
+	_self->ob_freeit = PyMac_AutoDisposeWindow;
+else
+	_self->ob_freeit = NULL;
+_res = Py_BuildValue("i", old);
+return _res;
+"""
+f = ManualGenerator("AutoDispose", AutoDispose_body)
+f.docstring = lambda: "(int)->int. Automatically DisposeHandle the object on Python object cleanup"
+methods.append(f)