Use ResObj_OptNew for GetDialogItem return value: the handle returned
may be NULL (for user items, for instance).
diff --git a/Mac/Modules/dlg/dlgscan.py b/Mac/Modules/dlg/dlgscan.py
index 6738828..b56edfd 100644
--- a/Mac/Modules/dlg/dlgscan.py
+++ b/Mac/Modules/dlg/dlgscan.py
@@ -63,6 +63,10 @@
 			([("void", "*", "OutMode"), ("long", "*", "InMode"),
 			                            ("long", "*", "OutMode")],
 			 [("VarVarOutBuffer", "*", "InOutMode")]),
+			 
+			# GetDialogItem return handle is optional
+			([("Handle", "item", "OutMode")],
+			 [("OptHandle", "item", "OutMode")]),
 			
 			# NewDialog ETC.
 			([("void", "*", "OutMode")],
diff --git a/Mac/Modules/dlg/dlgsupport.py b/Mac/Modules/dlg/dlgsupport.py
index 8761ea8..0b5f082 100644
--- a/Mac/Modules/dlg/dlgsupport.py
+++ b/Mac/Modules/dlg/dlgsupport.py
@@ -13,6 +13,12 @@
 DialogPtr = OpaqueByValueType("DialogPtr", "DlgObj")
 DialogRef = DialogPtr
 
+# XXXX There must be a more elegant way to do this. An OptHandle is
+# either a handle or None (in case NULL is passed in). This is needed
+# for GetDialogItem().
+OptHandle = OpaqueByValueType("Handle", "ResObj")
+OptHandle.new = "ResObj_OptNew"
+
 ModalFilterProcPtr = InputOnlyType("PyObject*", "O")
 ModalFilterProcPtr.passInput = lambda name: "NewModalFilterProc(Dlg_PassFilterProc(%s))" % name
 ModalFilterUPP = ModalFilterProcPtr