A few more gcc warnings bite the dust.
diff --git a/Mac/Modules/qd/_Qdmodule.c b/Mac/Modules/qd/_Qdmodule.c
index 3bbe2c3..d66fcf2 100644
--- a/Mac/Modules/qd/_Qdmodule.c
+++ b/Mac/Modules/qd/_Qdmodule.c
@@ -122,7 +122,7 @@
 	return Py_BuildValue("lll", (long)itself->red, (long)itself->green, (long)itself->blue);
 }
 
-QdRGB_Convert(PyObject *v, RGBColorPtr p_itself)
+int QdRGB_Convert(PyObject *v, RGBColorPtr p_itself)
 {
 	long red, green, blue;
 	
diff --git a/Mac/Modules/qd/qdsupport.py b/Mac/Modules/qd/qdsupport.py
index 9c177b6..0c969d7 100644
--- a/Mac/Modules/qd/qdsupport.py
+++ b/Mac/Modules/qd/qdsupport.py
@@ -167,7 +167,7 @@
 	return Py_BuildValue("lll", (long)itself->red, (long)itself->green, (long)itself->blue);
 }
 
-QdRGB_Convert(PyObject *v, RGBColorPtr p_itself)
+int QdRGB_Convert(PyObject *v, RGBColorPtr p_itself)
 {
 	long red, green, blue;
 	
diff --git a/Mac/Modules/res/_Resmodule.c b/Mac/Modules/res/_Resmodule.c
index 775e668..8640f5a 100644
--- a/Mac/Modules/res/_Resmodule.c
+++ b/Mac/Modules/res/_Resmodule.c
@@ -440,7 +440,8 @@
 		_self->ob_freeit = PyMac_AutoDisposeHandle;
 	else
 		_self->ob_freeit = NULL;
-	return Py_BuildValue("i", old);
+	_res = Py_BuildValue("i", old);
+	return _res;
 
 }
 
@@ -1378,7 +1379,8 @@
 	HLock(h);
 	memcpy(*h, buf, len);
 	HUnlock(h);
-	return ResObj_New(h);
+	_res = ResObj_New(h);
+	return _res;
 
 }
 
@@ -1403,7 +1405,8 @@
 	HUnlock(h);
 	rv = (ResourceObject *)ResObj_New(h);
 	rv->ob_freeit = PyMac_AutoDisposeHandle;
-	return (PyObject *)rv;
+	_res = (PyObject *)rv;
+	return _res;
 
 }
 
diff --git a/Mac/Modules/res/resedit.py b/Mac/Modules/res/resedit.py
index fce0bd1..c66c0c8 100644
--- a/Mac/Modules/res/resedit.py
+++ b/Mac/Modules/res/resedit.py
@@ -13,7 +13,8 @@
 HLock(h);
 memcpy(*h, buf, len);
 HUnlock(h);
-return ResObj_New(h);
+_res = ResObj_New(h);
+return _res;
 """
 
 f = ManualGenerator("Resource", resource_body)
@@ -43,7 +44,8 @@
 HUnlock(h);
 rv = (ResourceObject *)ResObj_New(h);
 rv->ob_freeit = PyMac_AutoDisposeHandle;
-return (PyObject *)rv;
+_res = (PyObject *)rv;
+return _res;
 """
 
 f = ManualGenerator("Handle", handle_body)
@@ -92,7 +94,8 @@
 	_self->ob_freeit = PyMac_AutoDisposeHandle;
 else
 	_self->ob_freeit = NULL;
-return Py_BuildValue("i", old);
+_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"
diff --git a/Mac/Modules/waste/wastemodule.c b/Mac/Modules/waste/wastemodule.c
index d09641f..2c28310 100644
--- a/Mac/Modules/waste/wastemodule.c
+++ b/Mac/Modules/waste/wastemodule.c
@@ -5,8 +5,20 @@
 
 
 
+#ifdef _WIN32
+#include "pywintoolbox.h"
+#else
 #include "macglue.h"
 #include "pymactoolbox.h"
+#endif
+
+/* 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; \
+    }} while(0)
+
 
 #include <WASTE.h>
 #include <WEObjectHandlers.h>
@@ -213,7 +225,7 @@
 	it->ob_itself = itself;
 	return (PyObject *)it;
 }
-WEOObj_Convert(PyObject *v, WEObjectReference *p_itself)
+int WEOObj_Convert(PyObject *v, WEObjectReference *p_itself)
 {
 	if (!WEOObj_Check(v))
 	{
@@ -381,7 +393,7 @@
 	WESetInfo(weRefCon, (void *)&it, itself);
 	return (PyObject *)it;
 }
-wasteObj_Convert(PyObject *v, WEReference *p_itself)
+int wasteObj_Convert(PyObject *v, WEReference *p_itself)
 {
 	if (!wasteObj_Check(v))
 	{
@@ -1061,7 +1073,6 @@
 	if (_err != noErr) return PyMac_Error(_err);
 	Py_INCREF(Py_None);
 	_res = Py_None;
- pText__error__: ;
 	return _res;
 }