Trying again to check it in. Changes to:
- Use Universal Headers as input
- Change addpack calls to not depend on Guido's disklayout
- Checkge testprograms to use new names for some functions
diff --git a/Mac/Lib/test/tmenu.py b/Mac/Lib/test/tmenu.py
index 1b156d7..bc972a8 100644
--- a/Mac/Lib/test/tmenu.py
+++ b/Mac/Lib/test/tmenu.py
@@ -2,12 +2,19 @@
 
 import os
 from Menu import *
-
-# Since we can't (yet) list the mounted volumes, here's a list of some:
-my_volumes = ['C:', 'D:', 'E:', 'F:']
+import macfs
+import sys
 
 def main():
 	global oldbar
+	my_volumes = []
+	while 1:
+		fss, ok = macfs.GetDirectory()
+		if not ok:
+			break
+		my_volumes.append(fss.as_pathname())
+	if not my_volumes:
+		return
 	oldbar = GetMenuBar()
 	ClearMenuBar()
 	makevolmenus(my_volumes)
@@ -40,10 +47,10 @@
 	for file in files:
 		item = item+1
 		menu.AppendMenu('x')		# add a dummy string
-		menu.SetItem(item, file)	# set the actual text
+		menu.SetMenuItemText(item, file)	# set the actual text
 		fullname = os.path.join(dir, file)
 		if os.path.isdir(fullname):
-			menu.SetItem(item, ':' + file + ':')	# append colons
+			menu.SetMenuItemText(item, ':' + file + ':')	# append colons
 			if maxdepth > 0:
 				id = nextid()
 				submenu = NewMenu(id, fullname)
@@ -58,3 +65,4 @@
 
 if __name__ == '__main__':
 	main()
+	sys.exit(1)   # To allow the user to interact...
diff --git a/Mac/Lib/toolbox/Events.py b/Mac/Lib/toolbox/Events.py
index 943c9e5..3d4ff94 100644
--- a/Mac/Lib/toolbox/Events.py
+++ b/Mac/Lib/toolbox/Events.py
@@ -1,4 +1,4 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Events.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Events.h'
 
 nullEvent = 0
 mouseDown = 1
@@ -10,41 +10,41 @@
 diskEvt = 7
 activateEvt = 8
 osEvt = 15
-mDownMask = 2
-mUpMask = 4
-keyDownMask = 8
-keyUpMask = 16
-autoKeyMask = 32
-updateMask = 64
-diskMask = 128
-activMask = 256
-highLevelEventMask = 1024
-osMask = -32768
-everyEvent = -1
+mDownMask = 0x0002
+mUpMask = 0x0004
+keyDownMask = 0x0008
+keyUpMask = 0x0010
+autoKeyMask = 0x0020
+updateMask = 0x0040
+diskMask = 0x0080
+activMask = 0x0100
+highLevelEventMask = 0x0400
+osMask = 0x8000
+everyEvent = 0xFFFF
 charCodeMask = 0x000000FF
 keyCodeMask = 0x0000FF00
 adbAddrMask = 0x00FF0000
-osEvtMessageMask = 0xFF000000
-mouseMovedMessage = 0xFA
-suspendResumeMessage = 0x01
+osEvtMessageMask = 0xFF000000L
+mouseMovedMessage = 0x00FA
+suspendResumeMessage = 0x0001
 resumeFlag = 1
 convertClipboardFlag = 2
-activeFlag = 1
-btnState = 128
-cmdKey = 256
-shiftKey = 512
-alphaLock = 1024
-optionKey = 2048
-controlKey = 4096
+activeFlag = 0x0001
+btnState = 0x0080
+cmdKey = 0x0100
+shiftKey = 0x0200
+alphaLock = 0x0400
+optionKey = 0x0800
+controlKey = 0x1000
 networkEvt = 10
 driverEvt = 11
 app1Evt = 12
 app2Evt = 13
 app3Evt = 14
 app4Evt = 15
-networkMask = 1024
-driverMask = 2048
-app1Mask = 4096
-app2Mask = 8192
-app3Mask = 16384
-app4Mask = -32768
+networkMask = 0x0400
+driverMask = 0x0800
+app1Mask = 0x1000
+app2Mask = 0x2000
+app3Mask = 0x4000
+app4Mask = 0x8000
diff --git a/Mac/Lib/toolbox/Menus.py b/Mac/Lib/toolbox/Menus.py
index 59dc89a..3729810 100644
--- a/Mac/Lib/toolbox/Menus.py
+++ b/Mac/Lib/toolbox/Menus.py
@@ -1,5 +1,6 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Menus.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Menus.h'
 
+noMark = 0
 mDrawMsg = 0
 mChooseMsg = 1
 mSizeMsg = 2
@@ -11,4 +12,3 @@
 mPopUpMsg = 3
 mctAllItems = -98
 mctLastIDIndic = -99
-
diff --git a/Mac/Lib/toolbox/QuickDraw.py b/Mac/Lib/toolbox/QuickDraw.py
index b09628f..e0a8ff1 100644
--- a/Mac/Lib/toolbox/QuickDraw.py
+++ b/Mac/Lib/toolbox/QuickDraw.py
@@ -1,4 +1,4 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:QuickDraw.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:QuickDraw.h'
 
 invalColReq = -1
 srcCopy = 0
@@ -47,18 +47,12 @@
 yellowColor = 69
 picLParen = 0
 picRParen = 1
-normal = 0
-bold = 1
-italic = 2
-underline = 4
-outline = 8
-shadow = 0x10
-condense = 0x20
-extend = 0x40
 clutType = 0
 fixedType = 1
 directType = 2
 gdDevType = 0
+roundedDevice = 5
+hasAuxMenuBar = 6
 burstDevice = 7
 ext32Device = 8
 ramInit = 10
@@ -72,6 +66,28 @@
 defQDColors = 127
 RGBDirect = 16
 baseAddr32 = 4
-rgnOverflowErr = -147
-insufficientStackErr = -149
+singleDevicesBit = 0
+dontMatchSeedsBit = 1
+allDevicesBit = 2
+singleDevices = 1 << singleDevicesBit
+dontMatchSeeds = 1 << dontMatchSeedsBit
 allDevices = 1 << allDevicesBit
+kNoConstraint = 0
+kVerticalConstraint = 1
+kHorizontalConstraint = 2
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:QuickDrawText.h'
+
+leftCaret = 0
+rightCaret = -1
+hilite = 1
+smLeftCaret = 0
+smRightCaret = -1
+smHilite = 1
+onlyStyleRun = 0
+leftStyleRun = 1
+rightStyleRun = 2
+middleStyleRun = 3
+smOnlyStyleRun = 0
+smLeftStyleRun = 1
+smRightStyleRun = 2
+smMiddleStyleRun = 3
diff --git a/Mac/Lib/toolbox/Resources.py b/Mac/Lib/toolbox/Resources.py
index e2ed97a..7d51d6d 100644
--- a/Mac/Lib/toolbox/Resources.py
+++ b/Mac/Lib/toolbox/Resources.py
@@ -1,4 +1,4 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Resources.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Resources.h'
 
 resSysHeap = 64
 resPurgeable = 32
@@ -9,5 +9,5 @@
 mapReadOnly = 128
 mapCompact = 64
 mapChanged = 32
-mapTrue = 0xFFFF
-mapFalse = 0xFF00
+kResFileNotOpened = -1
+kSystemResFile = 0
diff --git a/Mac/Lib/toolbox/Sound.py b/Mac/Lib/toolbox/Sound.py
index a65c652..515d024 100644
--- a/Mac/Lib/toolbox/Sound.py
+++ b/Mac/Lib/toolbox/Sound.py
@@ -1,15 +1,20 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Sound.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Sound.h'
 
-swMode = -1
-ftMode = 1
-ffMode = 0
-rate22khz = 0x56EE8BA3
-rate11khz = 0x2B7745D1
+soundListRsrc = 'snd '
+rate44khz = 0xAC440000L
+rate22050hz = 0x56220000L
+rate22khz = 0x56EE8BA3L
+rate11khz = 0x2B7745D1L
+rate11025hz = 0x2B110000
 squareWaveSynth = 1
 waveTableSynth = 3
 sampledSynth = 5
 MACE3snthID = 11
 MACE6snthID = 13
+kMiddleC = 60
+kSimpleBeepID = 1
+kFullVolume = 0x0100
+kNoVolume = 0
 nullCmd = 0
 initCmd = 1
 freeCmd = 2
@@ -21,23 +26,18 @@
 resumeCmd = 12
 callBackCmd = 13
 syncCmd = 14
-emptyCmd = 15
-tickleCmd = 20
-requestNextCmd = 21
-howOftenCmd = 22
-wakeUpCmd = 23
 availableCmd = 24
 versionCmd = 25
 totalLoadCmd = 26
 loadCmd = 27
-scaleCmd = 30
-tempoCmd = 31
 freqDurationCmd = 40
 restCmd = 41
 freqCmd = 42
 ampCmd = 43
 timbreCmd = 44
 getAmpCmd = 45
+volumeCmd = 46
+getVolumeCmd = 47
 waveTableCmd = 60
 phaseCmd = 61
 soundCmd = 80
@@ -46,6 +46,8 @@
 continueCmd = 83
 doubleBufferCmd = 84
 getRateCmd = 85
+rateMultiplierCmd = 86
+getRateMultiplierCmd = 87
 sizeCmd = 90
 convertCmd = 91
 stdQLength = 128
@@ -55,10 +57,6 @@
 waveInitChannel1 = 0x05
 waveInitChannel2 = 0x06
 waveInitChannel3 = 0x07
-initPanMask = 0x0003
-initSRateMask = 0x0030
-initStereoMask = 0x00C0
-initCompMask = 0xFF00
 initChanLeft = 0x0002
 initChanRight = 0x0003
 initNoInterp = 0x0004
@@ -67,18 +65,21 @@
 initStereo = 0x00C0
 initMACE3 = 0x0300
 initMACE6 = 0x0400
-initChan0 = 0x0004
-initChan1 = 0x0005
-initChan2 = 0x0006
-initChan3 = 0x0007
-stdSH = 0x00
-extSH = 0xFF
-cmpSH = 0xFE
+initPanMask = 0x0003
+initSRateMask = 0x0030
+initStereoMask = 0x00C0
+initCompMask = 0xFF00
+kUseOptionalOutputDevice = -1
 notCompressed = 0
+fixedCompression = -1
+variableCompression = -2
 twoToOne = 1
 eightToThree = 2
 threeToOne = 3
 sixToOne = 4
+stdSH = 0x00
+extSH = 0xFF
+cmpSH = 0xFE
 outsideCmpSH = 0
 insideCmpSH = 1
 aceSuccess = 0
diff --git a/Mac/Lib/toolbox/Windows.py b/Mac/Lib/toolbox/Windows.py
index 037000f..9a615cd 100644
--- a/Mac/Lib/toolbox/Windows.py
+++ b/Mac/Lib/toolbox/Windows.py
@@ -1,4 +1,4 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Windows.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Windows.h'
 
 documentProc = 0
 dBoxProc = 1
@@ -9,6 +9,14 @@
 zoomDocProc = 8
 zoomNoGrow = 12
 rDocProc = 16
+floatProc = 1985
+floatGrowProc = 1987
+floatZoomProc = 1989
+floatZoomGrowProc = 1991
+floatSideProc = 1993
+floatSideGrowProc = 1995
+floatSideZoomProc = 1997
+floatSideZoomGrowProc = 1999
 dialogKind = 2
 userKind = 8
 inDesk = 0
@@ -27,6 +35,12 @@
 wDispose = 4
 wGrow = 5
 wDrawGIcon = 6
+deskPatID = 16
+wContentColor = 0
+wFrameColor = 1
+wTextColor = 2
+wHiliteColor = 3
+wTitleBarColor = 4
 wNoHit = 0
 wInContent = 1
 wInDrag = 2
@@ -34,9 +48,3 @@
 wInGoAway = 4
 wInZoomIn = 5
 wInZoomOut = 6
-deskPatID = 16
-wContentColor = 0
-wFrameColor = 1
-wTextColor = 2
-wHiliteColor = 3
-wTitleBarColor = 4
diff --git a/Mac/Modules/evt/Evtmodule.c b/Mac/Modules/evt/Evtmodule.c
index 42d55b4..7169b59 100644
--- a/Mac/Modules/evt/Evtmodule.c
+++ b/Mac/Modules/evt/Evtmodule.c
@@ -39,6 +39,49 @@
 
 static PyObject *Evt_Error;
 
+static PyObject *Evt_GetDblTime(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	long _rv;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_rv = GetDblTime();
+	_res = Py_BuildValue("l",
+	                     _rv);
+	return _res;
+}
+
+static PyObject *Evt_GetCaretTime(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	long _rv;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_rv = GetCaretTime();
+	_res = Py_BuildValue("l",
+	                     _rv);
+	return _res;
+}
+
+static PyObject *Evt_SetEventMask(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short value;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &value))
+		return NULL;
+	SetEventMask(value);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
 static PyObject *Evt_GetNextEvent(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -171,6 +214,96 @@
 	return _res;
 }
 
+static PyObject *Evt_TickCount(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	unsigned long _rv;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_rv = TickCount();
+	_res = Py_BuildValue("l",
+	                     _rv);
+	return _res;
+}
+
+static PyObject *Evt_PostEvent(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	OSErr _err;
+	short eventNum;
+	long eventMsg;
+	if (!PyArg_ParseTuple(_args, "hl",
+	                      &eventNum,
+	                      &eventMsg))
+		return NULL;
+	_err = PostEvent(eventNum,
+	                 eventMsg);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Evt_OSEventAvail(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Boolean _rv;
+	short mask;
+	EventRecord theEvent;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &mask))
+		return NULL;
+	_rv = OSEventAvail(mask,
+	                   &theEvent);
+	_res = Py_BuildValue("bO&",
+	                     _rv,
+	                     PyMac_BuildEventRecord, &theEvent);
+	return _res;
+}
+
+static PyObject *Evt_GetOSEvent(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Boolean _rv;
+	short mask;
+	EventRecord theEvent;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &mask))
+		return NULL;
+	_rv = GetOSEvent(mask,
+	                 &theEvent);
+	_res = Py_BuildValue("bO&",
+	                     _rv,
+	                     PyMac_BuildEventRecord, &theEvent);
+	return _res;
+}
+
+static PyObject *Evt_FlushEvents(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short whichMask;
+	short stopMask;
+	if (!PyArg_ParseTuple(_args, "hh",
+	                      &whichMask,
+	                      &stopMask))
+		return NULL;
+	FlushEvents(whichMask,
+	            stopMask);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
 static PyObject *Evt_SystemClick(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -189,7 +322,42 @@
 	return _res;
 }
 
+static PyObject *Evt_SystemTask(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	SystemTask();
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Evt_SystemEvent(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Boolean _rv;
+	EventRecord theEvent;
+	if (!PyArg_ParseTuple(_args, "O&",
+	                      PyMac_GetEventRecord, &theEvent))
+		return NULL;
+	_rv = SystemEvent(&theEvent);
+	_res = Py_BuildValue("b",
+	                     _rv);
+	return _res;
+}
+
 static PyMethodDef Evt_methods[] = {
+	{"GetDblTime", (PyCFunction)Evt_GetDblTime, 1,
+	 "() -> (long _rv)"},
+	{"GetCaretTime", (PyCFunction)Evt_GetCaretTime, 1,
+	 "() -> (long _rv)"},
+	{"SetEventMask", (PyCFunction)Evt_SetEventMask, 1,
+	 "(short value) -> None"},
 	{"GetNextEvent", (PyCFunction)Evt_GetNextEvent, 1,
 	 "(short eventMask) -> (Boolean _rv, EventRecord theEvent)"},
 	{"WaitNextEvent", (PyCFunction)Evt_WaitNextEvent, 1,
@@ -206,8 +374,22 @@
 	 "() -> (Boolean _rv)"},
 	{"GetKeys", (PyCFunction)Evt_GetKeys, 1,
 	 "() -> (KeyMap theKeys)"},
+	{"TickCount", (PyCFunction)Evt_TickCount, 1,
+	 "() -> (unsigned long _rv)"},
+	{"PostEvent", (PyCFunction)Evt_PostEvent, 1,
+	 "(short eventNum, long eventMsg) -> None"},
+	{"OSEventAvail", (PyCFunction)Evt_OSEventAvail, 1,
+	 "(short mask) -> (Boolean _rv, EventRecord theEvent)"},
+	{"GetOSEvent", (PyCFunction)Evt_GetOSEvent, 1,
+	 "(short mask) -> (Boolean _rv, EventRecord theEvent)"},
+	{"FlushEvents", (PyCFunction)Evt_FlushEvents, 1,
+	 "(short whichMask, short stopMask) -> None"},
 	{"SystemClick", (PyCFunction)Evt_SystemClick, 1,
 	 "(EventRecord theEvent, WindowPtr theWindow) -> None"},
+	{"SystemTask", (PyCFunction)Evt_SystemTask, 1,
+	 "() -> None"},
+	{"SystemEvent", (PyCFunction)Evt_SystemEvent, 1,
+	 "(EventRecord theEvent) -> (Boolean _rv)"},
 	{NULL, NULL, 0}
 };
 
@@ -232,4 +414,3 @@
 
 /* ========================= End module Evt ========================= */
 
-
diff --git a/Mac/Modules/evt/evtgen.py b/Mac/Modules/evt/evtgen.py
index fd61c4d..deac64e 100644
--- a/Mac/Modules/evt/evtgen.py
+++ b/Mac/Modules/evt/evtgen.py
@@ -1,4 +1,17 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Events.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Events.h'
+
+f = Function(long, 'GetDblTime',
+)
+functions.append(f)
+
+f = Function(long, 'GetCaretTime',
+)
+functions.append(f)
+
+f = Function(void, 'SetEventMask',
+    (short, 'value', InMode),
+)
+functions.append(f)
 
 f = Function(Boolean, 'GetNextEvent',
     (short, 'eventMask', InMode),
@@ -42,3 +55,46 @@
 )
 functions.append(f)
 
+f = Function(unsigned_long, 'TickCount',
+)
+functions.append(f)
+
+f = Function(OSErr, 'PostEvent',
+    (short, 'eventNum', InMode),
+    (long, 'eventMsg', InMode),
+)
+functions.append(f)
+
+f = Function(Boolean, 'OSEventAvail',
+    (short, 'mask', InMode),
+    (EventRecord, 'theEvent', OutMode),
+)
+functions.append(f)
+
+f = Function(Boolean, 'GetOSEvent',
+    (short, 'mask', InMode),
+    (EventRecord, 'theEvent', OutMode),
+)
+functions.append(f)
+
+f = Function(void, 'FlushEvents',
+    (short, 'whichMask', InMode),
+    (short, 'stopMask', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'SystemClick',
+    (EventRecord_ptr, 'theEvent', InMode),
+    (WindowPtr, 'theWindow', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'SystemTask',
+)
+functions.append(f)
+
+f = Function(Boolean, 'SystemEvent',
+    (EventRecord_ptr, 'theEvent', InMode),
+)
+functions.append(f)
+
diff --git a/Mac/Modules/evt/evtscan.py b/Mac/Modules/evt/evtscan.py
index 517db71..70a9df9 100644
--- a/Mac/Modules/evt/evtscan.py
+++ b/Mac/Modules/evt/evtscan.py
@@ -1,5 +1,7 @@
 # Scan an Apple header file, generating a Python file of generator calls.
 
+import addpack
+addpack.addpack(':tools:bgen:bgen')
 from scantools import Scanner
 
 LONG = "Events"
@@ -32,10 +34,12 @@
 
 	def makeblacklistnames(self):
 		return [
+			"KeyTranslate"
 			]
 
 	def makeblacklisttypes(self):
 		return [
+			"EvQElPtr", "QHdrPtr"
 			]
 
 	def makerepairinstructions(self):
@@ -53,7 +57,11 @@
 			# GetKeys
 			([('KeyMap', 'theKeys', 'InMode')],
 			 [('*', '*', 'OutMode')]),
+			 
+			# GetTicker
+			([('unsigned long', '*', '*')],
+			 [('unsigned_long', '*', '*')]),
 			]
-
+			
 if __name__ == "__main__":
 	main()
diff --git a/Mac/Modules/evt/evtsupport.py b/Mac/Modules/evt/evtsupport.py
index 6f59b8b..0a6950b 100644
--- a/Mac/Modules/evt/evtsupport.py
+++ b/Mac/Modules/evt/evtsupport.py
@@ -63,7 +63,6 @@
 functions = []
 ##methods = []
 execfile(INPUTFILE)
-execfile("evtedit.py")
 
 # add the populated lists to the generator groups
 # (in a different wordl the scan program would generate this)
diff --git a/Mac/Modules/menu/Menumodule.c b/Mac/Modules/menu/Menumodule.c
index 84289a3..bb1cb79 100644
--- a/Mac/Modules/menu/Menumodule.c
+++ b/Mac/Modules/menu/Menumodule.c
@@ -109,7 +109,7 @@
 	return _res;
 }
 
-static PyObject *MenuObj_AddResMenu(_self, _args)
+static PyObject *MenuObj_AppendResMenu(_self, _args)
 	MenuObject *_self;
 	PyObject *_args;
 {
@@ -118,8 +118,8 @@
 	if (!PyArg_ParseTuple(_args, "O&",
 	                      PyMac_GetOSType, &theType))
 		return NULL;
-	AddResMenu(_self->ob_itself,
-	           theType);
+	AppendResMenu(_self->ob_itself,
+	              theType);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
@@ -160,7 +160,7 @@
 	return _res;
 }
 
-static PyObject *MenuObj_InsMenuItem(_self, _args)
+static PyObject *MenuObj_InsertMenuItem(_self, _args)
 	MenuObject *_self;
 	PyObject *_args;
 {
@@ -171,15 +171,15 @@
 	                      PyMac_GetStr255, itemString,
 	                      &afterItem))
 		return NULL;
-	InsMenuItem(_self->ob_itself,
-	            itemString,
-	            afterItem);
+	InsertMenuItem(_self->ob_itself,
+	               itemString,
+	               afterItem);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
 }
 
-static PyObject *MenuObj_DelMenuItem(_self, _args)
+static PyObject *MenuObj_DeleteMenuItem(_self, _args)
 	MenuObject *_self;
 	PyObject *_args;
 {
@@ -188,14 +188,14 @@
 	if (!PyArg_ParseTuple(_args, "h",
 	                      &item))
 		return NULL;
-	DelMenuItem(_self->ob_itself,
-	            item);
+	DeleteMenuItem(_self->ob_itself,
+	               item);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
 }
 
-static PyObject *MenuObj_SetItem(_self, _args)
+static PyObject *MenuObj_SetMenuItemText(_self, _args)
 	MenuObject *_self;
 	PyObject *_args;
 {
@@ -206,15 +206,15 @@
 	                      &item,
 	                      PyMac_GetStr255, itemString))
 		return NULL;
-	SetItem(_self->ob_itself,
-	        item,
-	        itemString);
+	SetMenuItemText(_self->ob_itself,
+	                item,
+	                itemString);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
 }
 
-static PyObject *MenuObj_GetItem(_self, _args)
+static PyObject *MenuObj_GetMenuItemText(_self, _args)
 	MenuObject *_self;
 	PyObject *_args;
 {
@@ -224,9 +224,9 @@
 	if (!PyArg_ParseTuple(_args, "h",
 	                      &item))
 		return NULL;
-	GetItem(_self->ob_itself,
-	        item,
-	        itemString);
+	GetMenuItemText(_self->ob_itself,
+	                item,
+	                itemString);
 	_res = Py_BuildValue("O&",
 	                     PyMac_BuildStr255, itemString);
 	return _res;
@@ -382,7 +382,7 @@
 {
 	PyObject *_res = NULL;
 	short item;
-	Style chStyle;
+	unsigned char chStyle;
 	if (!PyArg_ParseTuple(_args, "h",
 	                      &item))
 		return NULL;
@@ -481,24 +481,65 @@
 	return _res;
 }
 
+static PyObject *MenuObj_InsertFontResMenu(_self, _args)
+	MenuObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short afterItem;
+	short scriptFilter;
+	if (!PyArg_ParseTuple(_args, "hh",
+	                      &afterItem,
+	                      &scriptFilter))
+		return NULL;
+	InsertFontResMenu(_self->ob_itself,
+	                  afterItem,
+	                  scriptFilter);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *MenuObj_InsertIntlResMenu(_self, _args)
+	MenuObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	ResType theType;
+	short afterItem;
+	short scriptFilter;
+	if (!PyArg_ParseTuple(_args, "O&hh",
+	                      PyMac_GetOSType, &theType,
+	                      &afterItem,
+	                      &scriptFilter))
+		return NULL;
+	InsertIntlResMenu(_self->ob_itself,
+	                  theType,
+	                  afterItem,
+	                  scriptFilter);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
 static PyMethodDef MenuObj_methods[] = {
 	{"DisposeMenu", (PyCFunction)MenuObj_DisposeMenu, 1,
 	 "() -> None"},
 	{"AppendMenu", (PyCFunction)MenuObj_AppendMenu, 1,
 	 "(Str255 data) -> None"},
-	{"AddResMenu", (PyCFunction)MenuObj_AddResMenu, 1,
+	{"AppendResMenu", (PyCFunction)MenuObj_AppendResMenu, 1,
 	 "(ResType theType) -> None"},
 	{"InsertResMenu", (PyCFunction)MenuObj_InsertResMenu, 1,
 	 "(ResType theType, short afterItem) -> None"},
 	{"InsertMenu", (PyCFunction)MenuObj_InsertMenu, 1,
 	 "(short beforeID) -> None"},
-	{"InsMenuItem", (PyCFunction)MenuObj_InsMenuItem, 1,
+	{"InsertMenuItem", (PyCFunction)MenuObj_InsertMenuItem, 1,
 	 "(Str255 itemString, short afterItem) -> None"},
-	{"DelMenuItem", (PyCFunction)MenuObj_DelMenuItem, 1,
+	{"DeleteMenuItem", (PyCFunction)MenuObj_DeleteMenuItem, 1,
 	 "(short item) -> None"},
-	{"SetItem", (PyCFunction)MenuObj_SetItem, 1,
+	{"SetMenuItemText", (PyCFunction)MenuObj_SetMenuItemText, 1,
 	 "(short item, Str255 itemString) -> None"},
-	{"GetItem", (PyCFunction)MenuObj_GetItem, 1,
+	{"GetMenuItemText", (PyCFunction)MenuObj_GetMenuItemText, 1,
 	 "(short item) -> (Str255 itemString)"},
 	{"DisableItem", (PyCFunction)MenuObj_DisableItem, 1,
 	 "(short item) -> None"},
@@ -517,7 +558,7 @@
 	{"SetItemStyle", (PyCFunction)MenuObj_SetItemStyle, 1,
 	 "(short item, short chStyle) -> None"},
 	{"GetItemStyle", (PyCFunction)MenuObj_GetItemStyle, 1,
-	 "(short item) -> (Style chStyle)"},
+	 "(short item) -> (unsigned char chStyle)"},
 	{"CalcMenuSize", (PyCFunction)MenuObj_CalcMenuSize, 1,
 	 "() -> None"},
 	{"CountMItems", (PyCFunction)MenuObj_CountMItems, 1,
@@ -528,6 +569,10 @@
 	 "(short item, short cmdChar) -> None"},
 	{"PopUpMenuSelect", (PyCFunction)MenuObj_PopUpMenuSelect, 1,
 	 "(short top, short left, short popUpItem) -> (long _rv)"},
+	{"InsertFontResMenu", (PyCFunction)MenuObj_InsertFontResMenu, 1,
+	 "(short afterItem, short scriptFilter) -> None"},
+	{"InsertIntlResMenu", (PyCFunction)MenuObj_InsertIntlResMenu, 1,
+	 "(ResType theType, short afterItem, short scriptFilter) -> None"},
 	{NULL, NULL, 0}
 };
 
@@ -558,6 +603,20 @@
 /* ---------------------- End object type Menu ---------------------- */
 
 
+static PyObject *Menu_GetMBarHeight(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short _rv;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_rv = GetMBarHeight();
+	_res = Py_BuildValue("h",
+	                     _rv);
+	return _res;
+}
+
 static PyObject *Menu_InitMenus(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -736,7 +795,7 @@
 	return _res;
 }
 
-static PyObject *Menu_GetMHandle(_self, _args)
+static PyObject *Menu_GetMenuHandle(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
 {
@@ -746,7 +805,7 @@
 	if (!PyArg_ParseTuple(_args, "h",
 	                      &menuID))
 		return NULL;
-	_rv = GetMHandle(menuID);
+	_rv = GetMenuHandle(menuID);
 	_res = Py_BuildValue("O&",
 	                     MenuObj_New, _rv);
 	return _res;
@@ -827,7 +886,7 @@
 	return _res;
 }
 
-static PyObject *Menu_DelMCEntries(_self, _args)
+static PyObject *Menu_DeleteMCEntries(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
 {
@@ -838,8 +897,39 @@
 	                      &menuID,
 	                      &menuItem))
 		return NULL;
-	DelMCEntries(menuID,
-	             menuItem);
+	DeleteMCEntries(menuID,
+	                menuItem);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Menu_SystemEdit(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Boolean _rv;
+	short editCmd;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &editCmd))
+		return NULL;
+	_rv = SystemEdit(editCmd);
+	_res = Py_BuildValue("b",
+	                     _rv);
+	return _res;
+}
+
+static PyObject *Menu_SystemMenu(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	long menuResult;
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &menuResult))
+		return NULL;
+	SystemMenu(menuResult);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
@@ -861,6 +951,8 @@
 }
 
 static PyMethodDef Menu_methods[] = {
+	{"GetMBarHeight", (PyCFunction)Menu_GetMBarHeight, 1,
+	 "() -> (short _rv)"},
 	{"InitMenus", (PyCFunction)Menu_InitMenus, 1,
 	 "() -> None"},
 	{"NewMenu", (PyCFunction)Menu_NewMenu, 1,
@@ -885,7 +977,7 @@
 	 "(short ch) -> (long _rv)"},
 	{"HiliteMenu", (PyCFunction)Menu_HiliteMenu, 1,
 	 "(short menuID) -> None"},
-	{"GetMHandle", (PyCFunction)Menu_GetMHandle, 1,
+	{"GetMenuHandle", (PyCFunction)Menu_GetMenuHandle, 1,
 	 "(short menuID) -> (MenuHandle _rv)"},
 	{"FlashMenuBar", (PyCFunction)Menu_FlashMenuBar, 1,
 	 "(short menuID) -> None"},
@@ -897,8 +989,12 @@
 	 "(short resID) -> None"},
 	{"MenuChoice", (PyCFunction)Menu_MenuChoice, 1,
 	 "() -> (long _rv)"},
-	{"DelMCEntries", (PyCFunction)Menu_DelMCEntries, 1,
+	{"DeleteMCEntries", (PyCFunction)Menu_DeleteMCEntries, 1,
 	 "(short menuID, short menuItem) -> None"},
+	{"SystemEdit", (PyCFunction)Menu_SystemEdit, 1,
+	 "(short editCmd) -> (Boolean _rv)"},
+	{"SystemMenu", (PyCFunction)Menu_SystemMenu, 1,
+	 "(long menuResult) -> None"},
 	{"OpenDeskAcc", (PyCFunction)Menu_OpenDeskAcc, 1,
 	 "(Str255 name) -> None"},
 	{NULL, NULL, 0}
diff --git a/Mac/Modules/menu/menugen.py b/Mac/Modules/menu/menugen.py
index 2be4504..c3f9636 100644
--- a/Mac/Modules/menu/menugen.py
+++ b/Mac/Modules/menu/menugen.py
@@ -1,46 +1,50 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Menus.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Menus.h'
+
+f = Function(short, 'GetMBarHeight',
+)
+functions.append(f)
 
 f = Function(void, 'InitMenus',
 )
 functions.append(f)
 
-f = Function(MenuHandle, 'NewMenu',
+f = Function(MenuRef, 'NewMenu',
     (short, 'menuID', InMode),
-    (Str255, 'menuTitle', InMode),
+    (ConstStr255Param, 'menuTitle', InMode),
 )
 functions.append(f)
 
-f = Function(MenuHandle, 'GetMenu',
+f = Function(MenuRef, 'GetMenu',
     (short, 'resourceID', InMode),
 )
 functions.append(f)
 
 f = Method(void, 'DisposeMenu',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'AppendMenu',
-    (MenuHandle, 'menu', InMode),
+    (MenuRef, 'menu', InMode),
     (ConstStr255Param, 'data', InMode),
 )
 methods.append(f)
 
-f = Method(void, 'AddResMenu',
-    (MenuHandle, 'theMenu', InMode),
+f = Method(void, 'AppendResMenu',
+    (MenuRef, 'theMenu', InMode),
     (ResType, 'theType', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'InsertResMenu',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (ResType, 'theType', InMode),
     (short, 'afterItem', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'InsertMenu',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'beforeID', InMode),
 )
 methods.append(f)
@@ -76,15 +80,15 @@
 )
 functions.append(f)
 
-f = Method(void, 'InsMenuItem',
-    (MenuHandle, 'theMenu', InMode),
+f = Method(void, 'InsertMenuItem',
+    (MenuRef, 'theMenu', InMode),
     (ConstStr255Param, 'itemString', InMode),
     (short, 'afterItem', InMode),
 )
 methods.append(f)
 
-f = Method(void, 'DelMenuItem',
-    (MenuHandle, 'theMenu', InMode),
+f = Method(void, 'DeleteMenuItem',
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
 )
 methods.append(f)
@@ -99,92 +103,92 @@
 )
 functions.append(f)
 
-f = Method(void, 'SetItem',
-    (MenuHandle, 'theMenu', InMode),
+f = Method(void, 'SetMenuItemText',
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (ConstStr255Param, 'itemString', InMode),
 )
 methods.append(f)
 
-f = Method(void, 'GetItem',
-    (MenuHandle, 'theMenu', InMode),
+f = Method(void, 'GetMenuItemText',
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (Str255, 'itemString', OutMode),
 )
 methods.append(f)
 
 f = Method(void, 'DisableItem',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'EnableItem',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'CheckItem',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (Boolean, 'checked', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'SetItemMark',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (short, 'markChar', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'GetItemMark',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (short, 'markChar', OutMode),
 )
 methods.append(f)
 
 f = Method(void, 'SetItemIcon',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (short, 'iconIndex', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'GetItemIcon',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (short, 'iconIndex', OutMode),
 )
 methods.append(f)
 
 f = Method(void, 'SetItemStyle',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (short, 'chStyle', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'GetItemStyle',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
-    (Style, 'chStyle', OutMode),
+    (unsigned_char, 'chStyle', OutMode),
 )
 methods.append(f)
 
 f = Method(void, 'CalcMenuSize',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
 )
 methods.append(f)
 
 f = Method(short, 'CountMItems',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
 )
 methods.append(f)
 
-f = Function(MenuHandle, 'GetMHandle',
+f = Function(MenuRef, 'GetMenuHandle',
     (short, 'menuID', InMode),
 )
 functions.append(f)
@@ -210,21 +214,21 @@
 functions.append(f)
 
 f = Method(void, 'GetItemCmd',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (short, 'cmdChar', OutMode),
 )
 methods.append(f)
 
 f = Method(void, 'SetItemCmd',
-    (MenuHandle, 'theMenu', InMode),
+    (MenuRef, 'theMenu', InMode),
     (short, 'item', InMode),
     (short, 'cmdChar', InMode),
 )
 methods.append(f)
 
 f = Method(long, 'PopUpMenuSelect',
-    (MenuHandle, 'menu', InMode),
+    (MenuRef, 'menu', InMode),
     (short, 'top', InMode),
     (short, 'left', InMode),
     (short, 'popUpItem', InMode),
@@ -235,9 +239,34 @@
 )
 functions.append(f)
 
-f = Function(void, 'DelMCEntries',
+f = Function(void, 'DeleteMCEntries',
     (short, 'menuID', InMode),
     (short, 'menuItem', InMode),
 )
 functions.append(f)
 
+f = Method(void, 'InsertFontResMenu',
+    (MenuRef, 'theMenu', InMode),
+    (short, 'afterItem', InMode),
+    (short, 'scriptFilter', InMode),
+)
+methods.append(f)
+
+f = Method(void, 'InsertIntlResMenu',
+    (MenuRef, 'theMenu', InMode),
+    (ResType, 'theType', InMode),
+    (short, 'afterItem', InMode),
+    (short, 'scriptFilter', InMode),
+)
+methods.append(f)
+
+f = Function(Boolean, 'SystemEdit',
+    (short, 'editCmd', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'SystemMenu',
+    (long, 'menuResult', InMode),
+)
+functions.append(f)
+
diff --git a/Mac/Modules/menu/menuscan.py b/Mac/Modules/menu/menuscan.py
index b120052..08a6a04 100644
--- a/Mac/Modules/menu/menuscan.py
+++ b/Mac/Modules/menu/menuscan.py
@@ -1,4 +1,6 @@
 # Scan <Menus.h>, generating menugen.py.
+import addpack
+addpack.addpack(':Tools:bgen:bgen')
 
 from scantools import Scanner
 
@@ -20,7 +22,7 @@
 		listname = "functions"
 		if arglist:
 			t, n, m = arglist[0]
-			if t == "MenuHandle" and m == "InMode":
+			if t in ("MenuHandle", "MenuRef") and m == "InMode":
 				classname = "Method"
 				listname = "methods"
 		return classname, listname
diff --git a/Mac/Modules/menu/menusupport.py b/Mac/Modules/menu/menusupport.py
index 95e52f0..2c7c7c0 100644
--- a/Mac/Modules/menu/menusupport.py
+++ b/Mac/Modules/menu/menusupport.py
@@ -6,7 +6,7 @@
 import string
 
 import addpack
-addpack.addpack('D:python:Tools:bgen:bgen')
+addpack.addpack(':Tools:bgen:bgen')
 
 # Declarations that change for each manager
 MACHEADERFILE = 'Menus.h'		# The Apple header file
@@ -26,6 +26,9 @@
 # Create the type objects
 
 MenuHandle = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
+MenuRef = MenuHandle
+
+unsigned_char = Type('unsigned char', 'b')
 
 includestuff = includestuff + """
 #include <Devices.h> /* Defines OpenDeskAcc in universal headers */
diff --git a/Mac/Modules/qd/Qdmodule.c b/Mac/Modules/qd/Qdmodule.c
index 959df31..c1e5c8e 100644
--- a/Mac/Modules/qd/Qdmodule.c
+++ b/Mac/Modules/qd/Qdmodule.c
@@ -438,192 +438,6 @@
 	return _res;
 }
 
-static PyObject *Qd_TextFont(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short font;
-	if (!PyArg_ParseTuple(_args, "h",
-	                      &font))
-		return NULL;
-	TextFont(font);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
-static PyObject *Qd_TextFace(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short face;
-	if (!PyArg_ParseTuple(_args, "h",
-	                      &face))
-		return NULL;
-	TextFace(face);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
-static PyObject *Qd_TextMode(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short mode;
-	if (!PyArg_ParseTuple(_args, "h",
-	                      &mode))
-		return NULL;
-	TextMode(mode);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
-static PyObject *Qd_TextSize(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short size;
-	if (!PyArg_ParseTuple(_args, "h",
-	                      &size))
-		return NULL;
-	TextSize(size);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
-static PyObject *Qd_SpaceExtra(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	long extra;
-	if (!PyArg_ParseTuple(_args, "l",
-	                      &extra))
-		return NULL;
-	SpaceExtra(extra);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
-static PyObject *Qd_DrawChar(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short ch;
-	if (!PyArg_ParseTuple(_args, "h",
-	                      &ch))
-		return NULL;
-	DrawChar(ch);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
-static PyObject *Qd_DrawString(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	Str255 s;
-	if (!PyArg_ParseTuple(_args, "O&",
-	                      PyMac_GetStr255, s))
-		return NULL;
-	DrawString(s);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
-static PyObject *Qd_DrawText(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	char *textBuf__in__;
-	int textBuf__len__;
-	int textBuf__in_len__;
-	short firstByte;
-	short byteCount;
-	if (!PyArg_ParseTuple(_args, "s#hh",
-	                      &textBuf__in__, &textBuf__in_len__,
-	                      &firstByte,
-	                      &byteCount))
-		return NULL;
-	DrawText(textBuf__in__,
-	         firstByte,
-	         byteCount);
-	Py_INCREF(Py_None);
-	_res = Py_None;
- textBuf__error__: ;
-	return _res;
-}
-
-static PyObject *Qd_CharWidth(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short _rv;
-	short ch;
-	if (!PyArg_ParseTuple(_args, "h",
-	                      &ch))
-		return NULL;
-	_rv = CharWidth(ch);
-	_res = Py_BuildValue("h",
-	                     _rv);
-	return _res;
-}
-
-static PyObject *Qd_StringWidth(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short _rv;
-	Str255 s;
-	if (!PyArg_ParseTuple(_args, "O&",
-	                      PyMac_GetStr255, s))
-		return NULL;
-	_rv = StringWidth(s);
-	_res = Py_BuildValue("h",
-	                     _rv);
-	return _res;
-}
-
-static PyObject *Qd_TextWidth(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	short _rv;
-	char *textBuf__in__;
-	int textBuf__len__;
-	int textBuf__in_len__;
-	short firstByte;
-	short byteCount;
-	if (!PyArg_ParseTuple(_args, "s#hh",
-	                      &textBuf__in__, &textBuf__in_len__,
-	                      &firstByte,
-	                      &byteCount))
-		return NULL;
-	_rv = TextWidth(textBuf__in__,
-	                firstByte,
-	                byteCount);
-	_res = Py_BuildValue("h",
-	                     _rv);
- textBuf__error__: ;
-	return _res;
-}
-
 static PyObject *Qd_ForeColor(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -1989,6 +1803,24 @@
 	return _res;
 }
 
+static PyObject *Qd_SubPt(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Point src;
+	Point dst;
+	if (!PyArg_ParseTuple(_args, "O&O&",
+	                      PyMac_GetPoint, &src,
+	                      PyMac_GetPoint, &dst))
+		return NULL;
+	SubPt(src,
+	      &dst);
+	_res = Py_BuildValue("O&",
+	                     PyMac_BuildPoint, dst);
+	return _res;
+}
+
 static PyObject *Qd_PtInRgn(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -2022,21 +1854,6 @@
 	return _res;
 }
 
-static PyObject *Qd_DisposPixMap(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	PixMapHandle pm;
-	if (!PyArg_ParseTuple(_args, "O&",
-	                      ResObj_Convert, &pm))
-		return NULL;
-	DisposPixMap(pm);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
 static PyObject *Qd_DisposePixMap(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -2084,21 +1901,6 @@
 	return _res;
 }
 
-static PyObject *Qd_DisposPixPat(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	PixPatHandle pp;
-	if (!PyArg_ParseTuple(_args, "O&",
-	                      ResObj_Convert, &pp))
-		return NULL;
-	DisposPixPat(pp);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
 static PyObject *Qd_DisposePixPat(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -2326,21 +2128,6 @@
 	return _res;
 }
 
-static PyObject *Qd_CharExtra(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	long extra;
-	if (!PyArg_ParseTuple(_args, "l",
-	                      &extra))
-		return NULL;
-	CharExtra(extra);
-	Py_INCREF(Py_None);
-	_res = Py_None;
-	return _res;
-}
-
 static PyObject *Qd_GetCTSeed(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -2355,24 +2142,6 @@
 	return _res;
 }
 
-static PyObject *Qd_SubPt(_self, _args)
-	PyObject *_self;
-	PyObject *_args;
-{
-	PyObject *_res = NULL;
-	Point src;
-	Point dst;
-	if (!PyArg_ParseTuple(_args, "O&O&",
-	                      PyMac_GetPoint, &src,
-	                      PyMac_GetPoint, &dst))
-		return NULL;
-	SubPt(src,
-	      &dst);
-	_res = Py_BuildValue("O&",
-	                     PyMac_BuildPoint, dst);
-	return _res;
-}
-
 static PyObject *Qd_SetClientID(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -2438,6 +2207,207 @@
 	return _res;
 }
 
+static PyObject *Qd_TextFont(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short font;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &font))
+		return NULL;
+	TextFont(font);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Qd_TextFace(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short face;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &face))
+		return NULL;
+	TextFace(face);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Qd_TextMode(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short mode;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &mode))
+		return NULL;
+	TextMode(mode);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Qd_TextSize(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short size;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &size))
+		return NULL;
+	TextSize(size);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Qd_SpaceExtra(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	long extra;
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &extra))
+		return NULL;
+	SpaceExtra(extra);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Qd_DrawChar(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short ch;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &ch))
+		return NULL;
+	DrawChar(ch);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Qd_DrawString(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Str255 s;
+	if (!PyArg_ParseTuple(_args, "O&",
+	                      PyMac_GetStr255, s))
+		return NULL;
+	DrawString(s);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Qd_DrawText(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	char *textBuf__in__;
+	int textBuf__len__;
+	int textBuf__in_len__;
+	short firstByte;
+	short byteCount;
+	if (!PyArg_ParseTuple(_args, "s#hh",
+	                      &textBuf__in__, &textBuf__in_len__,
+	                      &firstByte,
+	                      &byteCount))
+		return NULL;
+	DrawText(textBuf__in__,
+	         firstByte,
+	         byteCount);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+ textBuf__error__: ;
+	return _res;
+}
+
+static PyObject *Qd_CharWidth(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short _rv;
+	short ch;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &ch))
+		return NULL;
+	_rv = CharWidth(ch);
+	_res = Py_BuildValue("h",
+	                     _rv);
+	return _res;
+}
+
+static PyObject *Qd_StringWidth(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short _rv;
+	Str255 s;
+	if (!PyArg_ParseTuple(_args, "O&",
+	                      PyMac_GetStr255, s))
+		return NULL;
+	_rv = StringWidth(s);
+	_res = Py_BuildValue("h",
+	                     _rv);
+	return _res;
+}
+
+static PyObject *Qd_TextWidth(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short _rv;
+	char *textBuf__in__;
+	int textBuf__len__;
+	int textBuf__in_len__;
+	short firstByte;
+	short byteCount;
+	if (!PyArg_ParseTuple(_args, "s#hh",
+	                      &textBuf__in__, &textBuf__in_len__,
+	                      &firstByte,
+	                      &byteCount))
+		return NULL;
+	_rv = TextWidth(textBuf__in__,
+	                firstByte,
+	                byteCount);
+	_res = Py_BuildValue("h",
+	                     _rv);
+ textBuf__error__: ;
+	return _res;
+}
+
+static PyObject *Qd_CharExtra(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	long extra;
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &extra))
+		return NULL;
+	CharExtra(extra);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
 static PyMethodDef Qd_methods[] = {
 	{"OpenPort", (PyCFunction)Qd_OpenPort, 1,
 	 "(WindowPtr port) -> None"},
@@ -2491,28 +2461,6 @@
 	 "(short h, short v) -> None"},
 	{"Line", (PyCFunction)Qd_Line, 1,
 	 "(short dh, short dv) -> None"},
-	{"TextFont", (PyCFunction)Qd_TextFont, 1,
-	 "(short font) -> None"},
-	{"TextFace", (PyCFunction)Qd_TextFace, 1,
-	 "(short face) -> None"},
-	{"TextMode", (PyCFunction)Qd_TextMode, 1,
-	 "(short mode) -> None"},
-	{"TextSize", (PyCFunction)Qd_TextSize, 1,
-	 "(short size) -> None"},
-	{"SpaceExtra", (PyCFunction)Qd_SpaceExtra, 1,
-	 "(long extra) -> None"},
-	{"DrawChar", (PyCFunction)Qd_DrawChar, 1,
-	 "(short ch) -> None"},
-	{"DrawString", (PyCFunction)Qd_DrawString, 1,
-	 "(Str255 s) -> None"},
-	{"DrawText", (PyCFunction)Qd_DrawText, 1,
-	 "(Buffer textBuf, short firstByte, short byteCount) -> None"},
-	{"CharWidth", (PyCFunction)Qd_CharWidth, 1,
-	 "(short ch) -> (short _rv)"},
-	{"StringWidth", (PyCFunction)Qd_StringWidth, 1,
-	 "(Str255 s) -> (short _rv)"},
-	{"TextWidth", (PyCFunction)Qd_TextWidth, 1,
-	 "(Buffer textBuf, short firstByte, short byteCount) -> (short _rv)"},
 	{"ForeColor", (PyCFunction)Qd_ForeColor, 1,
 	 "(long color) -> None"},
 	{"BackColor", (PyCFunction)Qd_BackColor, 1,
@@ -2665,20 +2613,18 @@
 	 "(Point pt1, Point pt2) -> (Rect dstRect)"},
 	{"PtToAngle", (PyCFunction)Qd_PtToAngle, 1,
 	 "(Rect r, Point pt) -> (short angle)"},
+	{"SubPt", (PyCFunction)Qd_SubPt, 1,
+	 "(Point src, Point dst) -> (Point dst)"},
 	{"PtInRgn", (PyCFunction)Qd_PtInRgn, 1,
 	 "(Point pt, RgnHandle rgn) -> (Boolean _rv)"},
 	{"NewPixMap", (PyCFunction)Qd_NewPixMap, 1,
 	 "() -> (PixMapHandle _rv)"},
-	{"DisposPixMap", (PyCFunction)Qd_DisposPixMap, 1,
-	 "(PixMapHandle pm) -> None"},
 	{"DisposePixMap", (PyCFunction)Qd_DisposePixMap, 1,
 	 "(PixMapHandle pm) -> None"},
 	{"CopyPixMap", (PyCFunction)Qd_CopyPixMap, 1,
 	 "(PixMapHandle srcPM, PixMapHandle dstPM) -> None"},
 	{"NewPixPat", (PyCFunction)Qd_NewPixPat, 1,
 	 "() -> (PixPatHandle _rv)"},
-	{"DisposPixPat", (PyCFunction)Qd_DisposPixPat, 1,
-	 "(PixPatHandle pp) -> None"},
 	{"DisposePixPat", (PyCFunction)Qd_DisposePixPat, 1,
 	 "(PixPatHandle pp) -> None"},
 	{"CopyPixPat", (PyCFunction)Qd_CopyPixPat, 1,
@@ -2705,12 +2651,8 @@
 	 "(PixMapHandle pm) -> None"},
 	{"AllocCursor", (PyCFunction)Qd_AllocCursor, 1,
 	 "() -> None"},
-	{"CharExtra", (PyCFunction)Qd_CharExtra, 1,
-	 "(long extra) -> None"},
 	{"GetCTSeed", (PyCFunction)Qd_GetCTSeed, 1,
 	 "() -> (long _rv)"},
-	{"SubPt", (PyCFunction)Qd_SubPt, 1,
-	 "(Point src, Point dst) -> (Point dst)"},
 	{"SetClientID", (PyCFunction)Qd_SetClientID, 1,
 	 "(short id) -> None"},
 	{"ProtectEntry", (PyCFunction)Qd_ProtectEntry, 1,
@@ -2719,6 +2661,30 @@
 	 "(short index, Boolean reserve) -> None"},
 	{"QDError", (PyCFunction)Qd_QDError, 1,
 	 "() -> (short _rv)"},
+	{"TextFont", (PyCFunction)Qd_TextFont, 1,
+	 "(short font) -> None"},
+	{"TextFace", (PyCFunction)Qd_TextFace, 1,
+	 "(short face) -> None"},
+	{"TextMode", (PyCFunction)Qd_TextMode, 1,
+	 "(short mode) -> None"},
+	{"TextSize", (PyCFunction)Qd_TextSize, 1,
+	 "(short size) -> None"},
+	{"SpaceExtra", (PyCFunction)Qd_SpaceExtra, 1,
+	 "(long extra) -> None"},
+	{"DrawChar", (PyCFunction)Qd_DrawChar, 1,
+	 "(short ch) -> None"},
+	{"DrawString", (PyCFunction)Qd_DrawString, 1,
+	 "(Str255 s) -> None"},
+	{"DrawText", (PyCFunction)Qd_DrawText, 1,
+	 "(Buffer textBuf, short firstByte, short byteCount) -> None"},
+	{"CharWidth", (PyCFunction)Qd_CharWidth, 1,
+	 "(short ch) -> (short _rv)"},
+	{"StringWidth", (PyCFunction)Qd_StringWidth, 1,
+	 "(Str255 s) -> (short _rv)"},
+	{"TextWidth", (PyCFunction)Qd_TextWidth, 1,
+	 "(Buffer textBuf, short firstByte, short byteCount) -> (short _rv)"},
+	{"CharExtra", (PyCFunction)Qd_CharExtra, 1,
+	 "(long extra) -> None"},
 	{NULL, NULL, 0}
 };
 
diff --git a/Mac/Modules/qd/qdgen.py b/Mac/Modules/qd/qdgen.py
index 975e438..612b9e7 100644
--- a/Mac/Modules/qd/qdgen.py
+++ b/Mac/Modules/qd/qdgen.py
@@ -1,4 +1,4 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:QuickDraw.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:QuickDraw.h'
 
 f = Function(void, 'OpenPort',
     (GrafPtr, 'port', InMode),
@@ -131,65 +131,6 @@
 )
 functions.append(f)
 
-f = Function(void, 'TextFont',
-    (short, 'font', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'TextFace',
-    (short, 'face', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'TextMode',
-    (short, 'mode', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'TextSize',
-    (short, 'size', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'SpaceExtra',
-    (Fixed, 'extra', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'DrawChar',
-    (short, 'ch', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'DrawString',
-    (ConstStr255Param, 's', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'DrawText',
-    (TextThingie, 'textBuf', InMode),
-    (short, 'firstByte', InMode),
-    (short, 'byteCount', InMode),
-)
-functions.append(f)
-
-f = Function(short, 'CharWidth',
-    (short, 'ch', InMode),
-)
-functions.append(f)
-
-f = Function(short, 'StringWidth',
-    (ConstStr255Param, 's', InMode),
-)
-functions.append(f)
-
-f = Function(short, 'TextWidth',
-    (TextThingie, 'textBuf', InMode),
-    (short, 'firstByte', InMode),
-    (short, 'byteCount', InMode),
-)
-functions.append(f)
-
 f = Function(void, 'ForeColor',
     (long, 'color', InMode),
 )
@@ -641,6 +582,12 @@
 )
 functions.append(f)
 
+f = Function(void, 'SubPt',
+    (Point, 'src', InMode),
+    (Point, 'dst', InOutMode),
+)
+functions.append(f)
+
 f = Function(Boolean, 'PtInRgn',
     (Point, 'pt', InMode),
     (RgnHandle, 'rgn', InMode),
@@ -651,11 +598,6 @@
 )
 functions.append(f)
 
-f = Function(void, 'DisposPixMap',
-    (PixMapHandle, 'pm', InMode),
-)
-functions.append(f)
-
 f = Function(void, 'DisposePixMap',
     (PixMapHandle, 'pm', InMode),
 )
@@ -671,11 +613,6 @@
 )
 functions.append(f)
 
-f = Function(void, 'DisposPixPat',
-    (PixPatHandle, 'pp', InMode),
-)
-functions.append(f)
-
 f = Function(void, 'DisposePixPat',
     (PixPatHandle, 'pp', InMode),
 )
@@ -751,21 +688,10 @@
 )
 functions.append(f)
 
-f = Function(void, 'CharExtra',
-    (Fixed, 'extra', InMode),
-)
-functions.append(f)
-
 f = Function(long, 'GetCTSeed',
 )
 functions.append(f)
 
-f = Function(void, 'SubPt',
-    (Point, 'src', InMode),
-    (Point, 'dst', InOutMode),
-)
-functions.append(f)
-
 f = Function(void, 'SetClientID',
     (short, 'id', InMode),
 )
@@ -787,3 +713,69 @@
 )
 functions.append(f)
 
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:QuickDrawText.h'
+
+f = Function(void, 'TextFont',
+    (short, 'font', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'TextFace',
+    (short, 'face', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'TextMode',
+    (short, 'mode', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'TextSize',
+    (short, 'size', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'SpaceExtra',
+    (Fixed, 'extra', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'DrawChar',
+    (short, 'ch', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'DrawString',
+    (ConstStr255Param, 's', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'DrawText',
+    (TextThingie, 'textBuf', InMode),
+    (short, 'firstByte', InMode),
+    (short, 'byteCount', InMode),
+)
+functions.append(f)
+
+f = Function(short, 'CharWidth',
+    (short, 'ch', InMode),
+)
+functions.append(f)
+
+f = Function(short, 'StringWidth',
+    (ConstStr255Param, 's', InMode),
+)
+functions.append(f)
+
+f = Function(short, 'TextWidth',
+    (TextThingie, 'textBuf', InMode),
+    (short, 'firstByte', InMode),
+    (short, 'byteCount', InMode),
+)
+functions.append(f)
+
+f = Function(void, 'CharExtra',
+    (Fixed, 'extra', InMode),
+)
+functions.append(f)
+
diff --git a/Mac/Modules/qd/qdscan.py b/Mac/Modules/qd/qdscan.py
index 057db6d..48766f2 100644
--- a/Mac/Modules/qd/qdscan.py
+++ b/Mac/Modules/qd/qdscan.py
@@ -1,7 +1,7 @@
 # Scan an Apple header file, generating a Python file of generator calls.
 
 import addpack
-addpack.addpack('D:python:Tools:bgen:bgen')
+addpack.addpack(':Tools:bgen:bgen')
 
 from scantools import Scanner
 
@@ -12,6 +12,32 @@
 	scanner = MyScanner(input, output, defsoutput)
 	scanner.scan()
 	scanner.close()
+	
+	# Grmpf. Universal Headers have Text-stuff in a different include file...
+	input = "QuickDrawText.h"
+	output = "@qdgentext.py"
+	defsoutput = "@QuickDrawText.py"
+	have_extra = 0
+	try:
+		scanner = MyScanner(input, output, defsoutput)
+		scanner.scan()
+		scanner.close()
+		have_extra = 1
+	except IOError:
+		pass
+	if have_extra:
+		print "=== Copying QuickDrawText stuff into main files... ==="
+		ifp = open("@qdgentext.py")
+		ofp = open("qdgen.py", "a")
+		ofp.write(ifp.read())
+		ifp.close()
+		ofp.close()
+		ifp = open("@QuickDrawText.py")
+		ofp = open("QuickDraw.py", "a")
+		ofp.write(ifp.read())
+		ifp.close()
+		ofp.close()
+		
 	print "=== Done scanning and generating, now importing the generated code... ==="
 	import qdsupport
 	print "=== Done.  It's up to you to compile it now! ==="
@@ -23,7 +49,7 @@
 		listname = "functions"
 		if arglist:
 			t, n, m = arglist[0]
-			if t in ("WindowPtr", "WindowPeek") and m == "InMode":
+			if t in ("WindowPtr", "WindowPeek", "WindowRef") and m == "InMode":
 				classname = "Method"
 				listname = "methods"
 		return classname, listname
@@ -48,7 +74,9 @@
 			'CSpecArray',
 			'CTabHandle',
 			'ColorComplementProcPtr',
+			'ColorComplementUPP',
 			'ColorSearchProcPtr',
+			'ColorSearchUPP',
 			'ConstPatternParam',
 			'Cursor_ptr',
 			'DeviceLoopDrawingProcPtr',
diff --git a/Mac/Modules/qd/qdsupport.py b/Mac/Modules/qd/qdsupport.py
index 0aa439c..f3e7a9a 100644
--- a/Mac/Modules/qd/qdsupport.py
+++ b/Mac/Modules/qd/qdsupport.py
@@ -6,7 +6,7 @@
 import string
 
 import addpack
-addpack.addpack('D:python:Tools:bgen:bgen')
+addpack.addpack(':Tools:bgen:bgen')
 
 # Declarations that change for each manager
 MACHEADERFILE = 'QuickDraw.h'		# The Apple header file
diff --git a/Mac/Modules/res/Resmodule.c b/Mac/Modules/res/Resmodule.c
index aeb7958..024d4d2 100644
--- a/Mac/Modules/res/Resmodule.c
+++ b/Mac/Modules/res/Resmodule.c
@@ -240,7 +240,7 @@
 	return _res;
 }
 
-static PyObject *ResObj_SizeResource(_self, _args)
+static PyObject *ResObj_GetResourceSizeOnDisk(_self, _args)
 	ResourceObject *_self;
 	PyObject *_args;
 {
@@ -248,7 +248,7 @@
 	long _rv;
 	if (!PyArg_ParseTuple(_args, ""))
 		return NULL;
-	_rv = SizeResource(_self->ob_itself);
+	_rv = GetResourceSizeOnDisk(_self->ob_itself);
 	{
 		OSErr _err = ResError();
 		if (_err != noErr) return PyMac_Error(_err);
@@ -258,7 +258,7 @@
 	return _res;
 }
 
-static PyObject *ResObj_MaxSizeRsrc(_self, _args)
+static PyObject *ResObj_GetMaxResourceSize(_self, _args)
 	ResourceObject *_self;
 	PyObject *_args;
 {
@@ -266,7 +266,7 @@
 	long _rv;
 	if (!PyArg_ParseTuple(_args, ""))
 		return NULL;
-	_rv = MaxSizeRsrc(_self->ob_itself);
+	_rv = GetMaxResourceSize(_self->ob_itself);
 	{
 		OSErr _err = ResError();
 		if (_err != noErr) return PyMac_Error(_err);
@@ -331,14 +331,14 @@
 	return _res;
 }
 
-static PyObject *ResObj_RmveResource(_self, _args)
+static PyObject *ResObj_RemoveResource(_self, _args)
 	ResourceObject *_self;
 	PyObject *_args;
 {
 	PyObject *_res = NULL;
 	if (!PyArg_ParseTuple(_args, ""))
 		return NULL;
-	RmveResource(_self->ob_itself);
+	RemoveResource(_self->ob_itself);
 	{
 		OSErr _err = ResError();
 		if (_err != noErr) return PyMac_Error(_err);
@@ -385,6 +385,24 @@
 	return _res;
 }
 
+static PyObject *ResObj_GetNextFOND(_self, _args)
+	ResourceObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Handle _rv;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_rv = GetNextFOND(_self->ob_itself);
+	{
+		OSErr _err = ResError();
+		if (_err != noErr) return PyMac_Error(_err);
+	}
+	_res = Py_BuildValue("O&",
+	                     ResObj_New, _rv);
+	return _res;
+}
+
 static PyMethodDef ResObj_methods[] = {
 	{"HomeResFile", (PyCFunction)ResObj_HomeResFile, 1,
 	 "() -> (short _rv)"},
@@ -402,9 +420,9 @@
 	 "(short theID, Str255 name) -> None"},
 	{"AddResource", (PyCFunction)ResObj_AddResource, 1,
 	 "(ResType theType, short theID, Str255 name) -> None"},
-	{"SizeResource", (PyCFunction)ResObj_SizeResource, 1,
+	{"GetResourceSizeOnDisk", (PyCFunction)ResObj_GetResourceSizeOnDisk, 1,
 	 "() -> (long _rv)"},
-	{"MaxSizeRsrc", (PyCFunction)ResObj_MaxSizeRsrc, 1,
+	{"GetMaxResourceSize", (PyCFunction)ResObj_GetMaxResourceSize, 1,
 	 "() -> (long _rv)"},
 	{"RsrcMapEntry", (PyCFunction)ResObj_RsrcMapEntry, 1,
 	 "() -> (long _rv)"},
@@ -412,12 +430,14 @@
 	 "(short attrs) -> None"},
 	{"ChangedResource", (PyCFunction)ResObj_ChangedResource, 1,
 	 "() -> None"},
-	{"RmveResource", (PyCFunction)ResObj_RmveResource, 1,
+	{"RemoveResource", (PyCFunction)ResObj_RemoveResource, 1,
 	 "() -> None"},
 	{"WriteResource", (PyCFunction)ResObj_WriteResource, 1,
 	 "() -> None"},
 	{"SetResourceSize", (PyCFunction)ResObj_SetResourceSize, 1,
 	 "(long newSize) -> None"},
+	{"GetNextFOND", (PyCFunction)ResObj_GetNextFOND, 1,
+	 "() -> (Handle _rv)"},
 	{NULL, NULL, 0}
 };
 
@@ -1017,8 +1037,8 @@
 	short _rv;
 	Str255 fileName;
 	short vRefNum;
-	char permission;
-	if (!PyArg_ParseTuple(_args, "O&hc",
+	SignedByte permission;
+	if (!PyArg_ParseTuple(_args, "O&hb",
 	                      PyMac_GetStr255, fileName,
 	                      &vRefNum,
 	                      &permission))
@@ -1067,8 +1087,8 @@
 	short vRefNum;
 	long dirID;
 	Str255 fileName;
-	char permission;
-	if (!PyArg_ParseTuple(_args, "hlO&c",
+	SignedByte permission;
+	if (!PyArg_ParseTuple(_args, "hlO&b",
 	                      &vRefNum,
 	                      &dirID,
 	                      PyMac_GetStr255, fileName,
@@ -1163,6 +1183,25 @@
 	return _res;
 }
 
+static PyObject *Res_TempInsertROMMap(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	Boolean tempResLoad;
+	if (!PyArg_ParseTuple(_args, "b",
+	                      &tempResLoad))
+		return NULL;
+	TempInsertROMMap(tempResLoad);
+	{
+		OSErr _err = ResError();
+		if (_err != noErr) return PyMac_Error(_err);
+	}
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
 static PyObject *Res_Resource(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -1243,17 +1282,19 @@
 	{"SetResFileAttrs", (PyCFunction)Res_SetResFileAttrs, 1,
 	 "(short refNum, short attrs) -> None"},
 	{"OpenRFPerm", (PyCFunction)Res_OpenRFPerm, 1,
-	 "(Str255 fileName, short vRefNum, char permission) -> (short _rv)"},
+	 "(Str255 fileName, short vRefNum, SignedByte permission) -> (short _rv)"},
 	{"RGetResource", (PyCFunction)Res_RGetResource, 1,
 	 "(ResType theType, short theID) -> (Handle _rv)"},
 	{"HOpenResFile", (PyCFunction)Res_HOpenResFile, 1,
-	 "(short vRefNum, long dirID, Str255 fileName, char permission) -> (short _rv)"},
+	 "(short vRefNum, long dirID, Str255 fileName, SignedByte permission) -> (short _rv)"},
 	{"HCreateResFile", (PyCFunction)Res_HCreateResFile, 1,
 	 "(short vRefNum, long dirID, Str255 fileName) -> None"},
 	{"FSpOpenResFile", (PyCFunction)Res_FSpOpenResFile, 1,
 	 "(FSSpec spec, SignedByte permission) -> (short _rv)"},
 	{"FSpCreateResFile", (PyCFunction)Res_FSpCreateResFile, 1,
 	 "(FSSpec spec, OSType creator, OSType fileType, ScriptCode scriptTag) -> None"},
+	{"TempInsertROMMap", (PyCFunction)Res_TempInsertROMMap, 1,
+	 "(Boolean tempResLoad) -> None"},
 	{"Resource", (PyCFunction)Res_Resource, 1,
 	 "Convert a string to a resource object.\n\nThe created resource object is actually just a handle.\nApply AddResource() to write it to a resource file.\n"},
 	{NULL, NULL, 0}
diff --git a/Mac/Modules/res/resgen.py b/Mac/Modules/res/resgen.py
index 9d817a3..b5e15de 100644
--- a/Mac/Modules/res/resgen.py
+++ b/Mac/Modules/res/resgen.py
@@ -1,4 +1,4 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Resources.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Resources.h'
 
 f = ResFunction(short, 'InitResources',
 )
@@ -158,19 +158,19 @@
 resmethods.append(f)
 
 f = ResMethod(void, 'AddResource',
-    (Handle, 'theResource', InMode),
+    (Handle, 'theData', InMode),
     (ResType, 'theType', InMode),
     (short, 'theID', InMode),
     (ConstStr255Param, 'name', InMode),
 )
 resmethods.append(f)
 
-f = ResMethod(long, 'SizeResource',
+f = ResMethod(long, 'GetResourceSizeOnDisk',
     (Handle, 'theResource', InMode),
 )
 resmethods.append(f)
 
-f = ResMethod(long, 'MaxSizeRsrc',
+f = ResMethod(long, 'GetMaxResourceSize',
     (Handle, 'theResource', InMode),
 )
 resmethods.append(f)
@@ -191,7 +191,7 @@
 )
 resmethods.append(f)
 
-f = ResMethod(void, 'RmveResource',
+f = ResMethod(void, 'RemoveResource',
     (Handle, 'theResource', InMode),
 )
 resmethods.append(f)
@@ -225,7 +225,7 @@
 f = ResFunction(short, 'OpenRFPerm',
     (ConstStr255Param, 'fileName', InMode),
     (short, 'vRefNum', InMode),
-    (char, 'permission', InMode),
+    (SignedByte, 'permission', InMode),
 )
 functions.append(f)
 
@@ -239,7 +239,7 @@
     (short, 'vRefNum', InMode),
     (long, 'dirID', InMode),
     (ConstStr255Param, 'fileName', InMode),
-    (char, 'permission', InMode),
+    (SignedByte, 'permission', InMode),
 )
 functions.append(f)
 
@@ -270,3 +270,13 @@
 )
 resmethods.append(f)
 
+f = ResMethod(Handle, 'GetNextFOND',
+    (Handle, 'fondHandle', InMode),
+)
+resmethods.append(f)
+
+f = ResFunction(void, 'TempInsertROMMap',
+    (Boolean, 'tempResLoad', InMode),
+)
+functions.append(f)
+
diff --git a/Mac/Modules/res/resscan.py b/Mac/Modules/res/resscan.py
index d45d69e..ba860b4 100644
--- a/Mac/Modules/res/resscan.py
+++ b/Mac/Modules/res/resscan.py
@@ -8,6 +8,8 @@
 import regex
 import regsub
 import MacOS
+import addpack
+addpack.addpack(':Tools:bgen:bgen')
 
 from scantools import Scanner
 
@@ -57,6 +59,9 @@
 			([("void", "*", "OutMode"), ("long", "*", "InMode"),
 			                            ("long", "*", "OutMode")],
 			 [("OutBuffer", "*", "InOutMode")]),
+			 
+			([("SInt8", "*", "*")],
+			 [("SignedByte", "*", "*")])
 			]
 
 if __name__ == "__main__":
diff --git a/Mac/Modules/res/ressupport.py b/Mac/Modules/res/ressupport.py
index a44af09..efc7571 100644
--- a/Mac/Modules/res/ressupport.py
+++ b/Mac/Modules/res/ressupport.py
@@ -3,6 +3,9 @@
 # It execs the file resgen.py which contain the function definitions
 # (resgen.py was generated by resscan.py, scanning the <Resources.h> header file).
 
+import addpack
+addpack.addpack(':Tools:bgen:bgen')
+
 from macsupport import *
 
 
diff --git a/Mac/Modules/snd/Sndmodule.c b/Mac/Modules/snd/Sndmodule.c
index 9f5c24d..62e9d85 100644
--- a/Mac/Modules/snd/Sndmodule.c
+++ b/Mac/Modules/snd/Sndmodule.c
@@ -244,12 +244,12 @@
 {
 	PyObject *_res = NULL;
 	OSErr _err;
-	Boolean async;
+	Boolean quietNow;
 	if (!PyArg_ParseTuple(_args, "b",
-	                      &async))
+	                      &quietNow))
 		return NULL;
 	_err = SndStopFilePlay(_self->ob_itself,
-	                       async);
+	                       quietNow);
 	if (_err != noErr) return PyMac_Error(_err);
 	Py_INCREF(Py_None);
 	_res = Py_None;
@@ -289,7 +289,7 @@
 	{"SndPauseFilePlay", (PyCFunction)SndCh_SndPauseFilePlay, 1,
 	 "() -> None"},
 	{"SndStopFilePlay", (PyCFunction)SndCh_SndStopFilePlay, 1,
-	 "(Boolean async) -> None"},
+	 "(Boolean quietNow) -> None"},
 	{"SndChannelStatus", (PyCFunction)SndCh_SndChannelStatus, 1,
 	 "(short theLength) -> (SCStatus theStatus)"},
 	{NULL, NULL, 0}
@@ -322,6 +322,35 @@
 /* ------------------- End object type SndChannel ------------------- */
 
 
+static PyObject *Snd_SetSoundVol(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short level;
+	if (!PyArg_ParseTuple(_args, "h",
+	                      &level))
+		return NULL;
+	SetSoundVol(level);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Snd_GetSoundVol(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	short level;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	GetSoundVol(&level);
+	_res = Py_BuildValue("h",
+	                     level);
+	return _res;
+}
+
 static PyObject *Snd_SndNewChannel(_self, _args)
 	PyObject *_self;
 	PyObject *_args;
@@ -642,7 +671,96 @@
 	return _res;
 }
 
+static PyObject *Snd_GetSysBeepVolume(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	OSErr _err;
+	long level;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_err = GetSysBeepVolume(&level);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     level);
+	return _res;
+}
+
+static PyObject *Snd_SetSysBeepVolume(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	OSErr _err;
+	long level;
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &level))
+		return NULL;
+	_err = SetSysBeepVolume(level);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Snd_GetDefaultOutputVolume(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	OSErr _err;
+	long level;
+	if (!PyArg_ParseTuple(_args, ""))
+		return NULL;
+	_err = GetDefaultOutputVolume(&level);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     level);
+	return _res;
+}
+
+static PyObject *Snd_SetDefaultOutputVolume(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	OSErr _err;
+	long level;
+	if (!PyArg_ParseTuple(_args, "l",
+	                      &level))
+		return NULL;
+	_err = SetDefaultOutputVolume(level);
+	if (_err != noErr) return PyMac_Error(_err);
+	Py_INCREF(Py_None);
+	_res = Py_None;
+	return _res;
+}
+
+static PyObject *Snd_GetSoundHeaderOffset(_self, _args)
+	PyObject *_self;
+	PyObject *_args;
+{
+	PyObject *_res = NULL;
+	OSErr _err;
+	SndListHandle sndHandle;
+	long offset;
+	if (!PyArg_ParseTuple(_args, "O&",
+	                      ResObj_Convert, &sndHandle))
+		return NULL;
+	_err = GetSoundHeaderOffset(sndHandle,
+	                            &offset);
+	if (_err != noErr) return PyMac_Error(_err);
+	_res = Py_BuildValue("l",
+	                     offset);
+	return _res;
+}
+
 static PyMethodDef Snd_methods[] = {
+	{"SetSoundVol", (PyCFunction)Snd_SetSoundVol, 1,
+	 "(short level) -> None"},
+	{"GetSoundVol", (PyCFunction)Snd_GetSoundVol, 1,
+	 "() -> (short level)"},
 	{"SndNewChannel", (PyCFunction)Snd_SndNewChannel, 1,
 	 "(short synth, long init, PyObject* userRoutine) -> (SndChannelPtr chan)"},
 	{"SndControl", (PyCFunction)Snd_SndControl, 1,
@@ -665,6 +783,16 @@
 	 "(Buffer buffer, Buffer state, unsigned long numChannels, unsigned long whichChannel) -> (Buffer buffer, Buffer state)"},
 	{"Exp1to6", (PyCFunction)Snd_Exp1to6, 1,
 	 "(Buffer buffer, Buffer state, unsigned long numChannels, unsigned long whichChannel) -> (Buffer buffer, Buffer state)"},
+	{"GetSysBeepVolume", (PyCFunction)Snd_GetSysBeepVolume, 1,
+	 "() -> (long level)"},
+	{"SetSysBeepVolume", (PyCFunction)Snd_SetSysBeepVolume, 1,
+	 "(long level) -> None"},
+	{"GetDefaultOutputVolume", (PyCFunction)Snd_GetDefaultOutputVolume, 1,
+	 "() -> (long level)"},
+	{"SetDefaultOutputVolume", (PyCFunction)Snd_SetDefaultOutputVolume, 1,
+	 "(long level) -> None"},
+	{"GetSoundHeaderOffset", (PyCFunction)Snd_GetSoundHeaderOffset, 1,
+	 "(SndListHandle sndHandle) -> (long offset)"},
 	{NULL, NULL, 0}
 };
 
diff --git a/Mac/Modules/snd/sndgen.py b/Mac/Modules/snd/sndgen.py
index 8e02f29..a980338 100644
--- a/Mac/Modules/snd/sndgen.py
+++ b/Mac/Modules/snd/sndgen.py
@@ -1,4 +1,14 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Sound.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Sound.h'
+
+f = SndFunction(void, 'SetSoundVol',
+    (short, 'level', InMode),
+)
+functions.append(f)
+
+f = SndFunction(void, 'GetSoundVol',
+    (short, 'level', OutMode),
+)
+functions.append(f)
 
 f = SndMethod(OSErr, 'SndDoCommand',
     (SndChannelPtr, 'chan', InMode),
@@ -17,7 +27,7 @@
     (SndChannelPtr, 'chan', OutMode),
     (short, 'synth', InMode),
     (long, 'init', InMode),
-    (SndCallBackProcPtr, 'userRoutine', InMode),
+    (SndCallBackUPP, 'userRoutine', InMode),
 )
 functions.append(f)
 
@@ -34,16 +44,6 @@
 )
 functions.append(f)
 
-f = SndFunction(void, 'SetSoundVol',
-    (short, 'level', InMode),
-)
-functions.append(f)
-
-f = SndFunction(void, 'GetSoundVol',
-    (short, 'level', OutMode),
-)
-functions.append(f)
-
 f = SndFunction(NumVersion, 'SndSoundManagerVersion',
 )
 functions.append(f)
@@ -55,7 +55,7 @@
     (long, 'bufferSize', InMode),
     (FakeType('0'), 'theBuffer', InMode),
     (AudioSelectionPtr, 'theSelection', InMode),
-    (ProcPtr, 'theCompletion', InMode),
+    (FilePlayCompletionUPP, 'theCompletion', InMode),
     (Boolean, 'async', InMode),
 )
 sndmethods.append(f)
@@ -67,7 +67,7 @@
 
 f = SndMethod(OSErr, 'SndStopFilePlay',
     (SndChannelPtr, 'chan', InMode),
-    (Boolean, 'async', InMode),
+    (Boolean, 'quietNow', InMode),
 )
 sndmethods.append(f)
 
@@ -130,3 +130,29 @@
 )
 functions.append(f)
 
+f = SndFunction(OSErr, 'GetSysBeepVolume',
+    (long, 'level', OutMode),
+)
+functions.append(f)
+
+f = SndFunction(OSErr, 'SetSysBeepVolume',
+    (long, 'level', InMode),
+)
+functions.append(f)
+
+f = SndFunction(OSErr, 'GetDefaultOutputVolume',
+    (long, 'level', OutMode),
+)
+functions.append(f)
+
+f = SndFunction(OSErr, 'SetDefaultOutputVolume',
+    (long, 'level', InMode),
+)
+functions.append(f)
+
+f = SndFunction(OSErr, 'GetSoundHeaderOffset',
+    (SndListHandle, 'sndHandle', InMode),
+    (long, 'offset', OutMode),
+)
+functions.append(f)
+
diff --git a/Mac/Modules/snd/sndscan.py b/Mac/Modules/snd/sndscan.py
index 02c9177..8201b2c 100644
--- a/Mac/Modules/snd/sndscan.py
+++ b/Mac/Modules/snd/sndscan.py
@@ -2,6 +2,9 @@
 # Then import sndsupport (which execs sndgen.py) to generate Sndmodule.c.
 # (Should learn how to tell the compiler to compile it as well.)
 
+import addpack
+addpack.addpack(':Tools:bgen:bgen')
+
 from scantools import Scanner
 
 def main():
@@ -36,6 +39,10 @@
 			'StartSound',
 			'StopSound',
 			'SoundDone',
+			# These are soundMgr 3.0 routines that I can't seem to find...
+			'GetSoundPreference',
+			'SetSoundPreference',
+			'GetCompressionInfo',
 
 			]
 
@@ -43,6 +50,7 @@
 		return [
 			"GetSoundVol",
 			"SetSoundVol",
+			"UnsignedFixed",
 			]
 
 	def makerepairinstructions(self):
@@ -62,6 +70,9 @@
 			
 			([("SMStatusPtr", "*", "InMode")],
 			 [("SMStatus", "*", "OutMode")]),
+			 
+			([("CompressionInfoPtr", "*", "InMode")],
+			 [("CompressionInfo", "*", "OutMode")]),
 			
 			# For SndPlay's SndListHandle argument
 			([("Handle", "sndHdl", "InMode")],
diff --git a/Mac/Modules/snd/sndsupport.py b/Mac/Modules/snd/sndsupport.py
index fb561e8..af1908a 100644
--- a/Mac/Modules/snd/sndsupport.py
+++ b/Mac/Modules/snd/sndsupport.py
@@ -3,6 +3,9 @@
 # It execs the file sndgen.py which contain the function definitions
 # (sndgen.py was generated by sndscan.py, scanning the <Sound.h> header file).
 
+import addpack
+addpack.addpack(':Tools:bgen:bgen')
+
 from macsupport import *
 
 
@@ -71,8 +74,10 @@
 		IndentLevel()
 
 SndCallBackProcPtr = SndCallBackType()
+SndCallBackUPP = SndCallBackProcPtr
 
 SndCompletionProcPtr = FakeType('(SndCompletionProcPtr)0') # XXX
+SndCompletionUPP = SndCompletionProcPtr
 
 NumVersion = OpaqueByValueType('NumVersion', 'NumVer')
 
@@ -81,9 +86,11 @@
 AudioSelectionPtr = FakeType('0') # XXX
 
 ProcPtr = FakeType('0') # XXX
+FilePlayCompletionUPP = FakeType('0') # XXX
 
 SCStatus = StructOutputBufferType('SCStatus')
 SMStatus = StructOutputBufferType('SMStatus')
+CompressionInfo = StructOutputBufferType('CompressionInfo')
 
 includestuff = includestuff + """
 #include <OSUtils.h> /* for Set(Current)A5 */
diff --git a/Mac/Modules/win/Winmodule.c b/Mac/Modules/win/Winmodule.c
index fc89803..7d6de73 100644
--- a/Mac/Modules/win/Winmodule.c
+++ b/Mac/Modules/win/Winmodule.c
@@ -346,7 +346,7 @@
 	PyObject *_res = NULL;
 	if (!PyArg_ParseTuple(_args, ""))
 		return NULL;
-	ClipAbove((WindowPeek)(_self->ob_itself));
+	ClipAbove(_self->ob_itself);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
@@ -359,7 +359,7 @@
 	PyObject *_res = NULL;
 	if (!PyArg_ParseTuple(_args, ""))
 		return NULL;
-	SaveOld((WindowPeek)(_self->ob_itself));
+	SaveOld(_self->ob_itself);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
@@ -374,7 +374,7 @@
 	if (!PyArg_ParseTuple(_args, "b",
 	                      &update))
 		return NULL;
-	DrawNew((WindowPeek)(_self->ob_itself),
+	DrawNew(_self->ob_itself,
 	        update);
 	Py_INCREF(Py_None);
 	_res = Py_None;
@@ -388,7 +388,7 @@
 	PyObject *_res = NULL;
 	if (!PyArg_ParseTuple(_args, ""))
 		return NULL;
-	CalcVis((WindowPeek)(_self->ob_itself));
+	CalcVis(_self->ob_itself);
 	Py_INCREF(Py_None);
 	_res = Py_None;
 	return _res;
@@ -871,4 +871,3 @@
 
 /* ========================= End module Win ========================= */
 
-
diff --git a/Mac/Modules/win/wingen.py b/Mac/Modules/win/wingen.py
index 0abf6e0..f0f7633 100644
--- a/Mac/Modules/win/wingen.py
+++ b/Mac/Modules/win/wingen.py
@@ -1,69 +1,69 @@
-# Generated from 'D:Development:THINK C:Mac #includes:Apple #includes:Windows.h'
+# Generated from 'Moes:CW5 GOLD \304:Metrowerks C/C++ \304:Headers \304:Universal Headers 2.0a3 \304:Windows.h'
 
 f = Function(void, 'InitWindows',
 )
 functions.append(f)
 
-f = Function(WindowPtr, 'NewWindow',
+f = Function(WindowRef, 'NewWindow',
     (NullStorage, 'wStorage', InMode),
     (Rect_ptr, 'boundsRect', InMode),
     (ConstStr255Param, 'title', InMode),
     (Boolean, 'visible', InMode),
     (short, 'theProc', InMode),
-    (WindowPtr, 'behind', InMode),
+    (WindowRef, 'behind', InMode),
     (Boolean, 'goAwayFlag', InMode),
     (long, 'refCon', InMode),
 )
 functions.append(f)
 
-f = Function(WindowPtr, 'GetNewWindow',
+f = Function(WindowRef, 'GetNewWindow',
     (short, 'windowID', InMode),
     (NullStorage, 'wStorage', InMode),
-    (WindowPtr, 'behind', InMode),
+    (WindowRef, 'behind', InMode),
 )
 functions.append(f)
 
 f = Method(void, 'GetWTitle',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (Str255, 'title', OutMode),
 )
 methods.append(f)
 
 f = Method(void, 'SelectWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'HideWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'ShowWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'ShowHide',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (Boolean, 'showFlag', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'HiliteWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (Boolean, 'fHilite', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'BringToFront',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'SendBehind',
-    (WindowPtr, 'theWindow', InMode),
-    (WindowPtr, 'behindWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
+    (WindowRef, 'behindWindow', InMode),
 )
 methods.append(f)
 
@@ -72,12 +72,12 @@
 functions.append(f)
 
 f = Method(void, 'DrawGrowIcon',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'MoveWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (short, 'hGlobal', InMode),
     (short, 'vGlobal', InMode),
     (Boolean, 'front', InMode),
@@ -85,7 +85,7 @@
 methods.append(f)
 
 f = Method(void, 'SizeWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (short, 'w', InMode),
     (short, 'h', InMode),
     (Boolean, 'fUpdate', InMode),
@@ -93,7 +93,7 @@
 methods.append(f)
 
 f = Method(void, 'ZoomWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (short, 'partCode', InMode),
     (Boolean, 'front', InMode),
 )
@@ -110,23 +110,23 @@
 functions.append(f)
 
 f = Method(void, 'BeginUpdate',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'EndUpdate',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'SetWRefCon',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (long, 'data', InMode),
 )
 methods.append(f)
 
 f = Method(long, 'GetWRefCon',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
@@ -136,28 +136,28 @@
 functions.append(f)
 
 f = Method(void, 'ClipAbove',
-    (WindowPeek, 'window', InMode),
+    (WindowRef, 'window', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'SaveOld',
-    (WindowPeek, 'window', InMode),
+    (WindowRef, 'window', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'DrawNew',
-    (WindowPeek, 'window', InMode),
+    (WindowRef, 'window', InMode),
     (Boolean, 'update', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'CalcVis',
-    (WindowPeek, 'window', InMode),
+    (WindowRef, 'window', InMode),
 )
 methods.append(f)
 
 f = Method(long, 'GrowWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (Point, 'startPt', InMode),
     (Rect_ptr, 'bBox', InMode),
 )
@@ -176,53 +176,52 @@
 functions.append(f)
 
 f = Method(Boolean, 'TrackBox',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (Point, 'thePt', InMode),
     (short, 'partCode', InMode),
 )
 methods.append(f)
 
-f = Function(WindowPtr, 'NewCWindow',
+f = Function(WindowRef, 'NewCWindow',
     (NullStorage, 'wStorage', InMode),
     (Rect_ptr, 'boundsRect', InMode),
     (ConstStr255Param, 'title', InMode),
     (Boolean, 'visible', InMode),
     (short, 'procID', InMode),
-    (WindowPtr, 'behind', InMode),
+    (WindowRef, 'behind', InMode),
     (Boolean, 'goAwayFlag', InMode),
     (long, 'refCon', InMode),
 )
 functions.append(f)
 
-f = Function(WindowPtr, 'GetNewCWindow',
+f = Function(WindowRef, 'GetNewCWindow',
     (short, 'windowID', InMode),
     (NullStorage, 'wStorage', InMode),
-    (WindowPtr, 'behind', InMode),
+    (WindowRef, 'behind', InMode),
 )
 functions.append(f)
 
 f = Method(short, 'GetWVariant',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'SetWTitle',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (ConstStr255Param, 'title', InMode),
 )
 methods.append(f)
 
 f = Method(Boolean, 'TrackGoAway',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (Point, 'thePt', InMode),
 )
 methods.append(f)
 
 f = Method(void, 'DragWindow',
-    (WindowPtr, 'theWindow', InMode),
+    (WindowRef, 'theWindow', InMode),
     (Point, 'startPt', InMode),
     (Rect_ptr, 'boundsRect', InMode),
 )
 methods.append(f)
 
-
diff --git a/Mac/Modules/win/winscan.py b/Mac/Modules/win/winscan.py
index 8d089a3..e9ac5af 100644
--- a/Mac/Modules/win/winscan.py
+++ b/Mac/Modules/win/winscan.py
@@ -1,4 +1,6 @@
 # Scan an Apple header file, generating a Python file of generator calls.
+import addpack
+addpack.addpack(':Tools:bgen:bgen')
 
 from scantools import Scanner
 
@@ -20,7 +22,7 @@
 		listname = "functions"
 		if arglist:
 			t, n, m = arglist[0]
-			if t in ("WindowPtr", "WindowPeek") and m == "InMode":
+			if t in ("WindowPtr", "WindowPeek", "WindowRef") and m == "InMode":
 				classname = "Method"
 				listname = "methods"
 		return classname, listname
@@ -62,9 +64,13 @@
 			
 			([("WindowPtr", "*", "OutMode")],
 			 [("ExistingWindowPtr", "*", "*")]),
+			([("WindowRef", "*", "OutMode")],	# Same, but other style headerfiles
+			 [("ExistingWindowPtr", "*", "*")]),
 			
 			([("WindowPtr", "FrontWindow", "ReturnMode")],
 			 [("ExistingWindowPtr", "*", "*")]),
+			([("WindowRef", "FrontWindow", "ReturnMode")],	# Ditto
+			 [("ExistingWindowPtr", "*", "*")]),
 			]
 
 if __name__ == "__main__":
diff --git a/Mac/Modules/win/winsupport.py b/Mac/Modules/win/winsupport.py
index a7f1ebd..6f085f7 100644
--- a/Mac/Modules/win/winsupport.py
+++ b/Mac/Modules/win/winsupport.py
@@ -5,6 +5,9 @@
 
 import string
 
+import addpack
+addpack.addpack(':Tools:bgen:bgen')
+
 # Declarations that change for each manager
 MACHEADERFILE = 'Windows.h'		# The Apple header file
 MODNAME = 'Win'				# The name of the module
@@ -22,6 +25,7 @@
 # Create the type objects
 
 WindowPtr = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
+WindowRef = WindowPtr
 WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX)
 WindowPeek.passInput = lambda name: "(WindowPeek)(%s)" % name