diff --git a/Mac/Lib/test/tdlg.py b/Mac/Lib/test/tdlg.py
index f234a70..d6fdd97 100644
--- a/Mac/Lib/test/tdlg.py
+++ b/Mac/Lib/test/tdlg.py
@@ -1,15 +1,30 @@
-# This program requires that a DLOG resource with ID=128 exists.
-# You can make one with ResEdit if necessary.
+# Function to display a message and wait for the user to hit OK.
+# This uses a DLOG resource with ID=256 which is part of the standard
+# Python library.
+# The ID can be overridden by passing a second parameter.
 
-from Res import *
 from Dlg import *
+from Events import *
+import string
 
-ires = 128
+ID = 256
 
-def filter(*args): print 'filter:', args
+def f(d, event):
+	what, message, when, where, modifiers = event
+	if what == keyDown and modifiers & cmdKey and \
+	   string.lower(chr(message & charCodeMask)) == 'o':
+		return 1
 
-d = GetNewDialog(ires, -1)
-while 1:
-	n = ModalDialog(filter)
-	print 'item:', n
-	if n == 1: break
+def message(str = "Hello, world!", id = ID):
+	d = GetNewDialog(id, -1)
+	tp, h, rect = d.GetDItem(2)
+	SetIText(h, str)
+	while 1:
+		n = ModalDialog(f)
+		if n == 1: break
+
+def test():
+	message()
+
+if __name__ == '__main__':
+	test()
diff --git a/Mac/Modules/dlg/Dlgmodule.c b/Mac/Modules/dlg/Dlgmodule.c
index 0cd9dbb..b297e1c 100644
--- a/Mac/Modules/dlg/Dlgmodule.c
+++ b/Mac/Modules/dlg/Dlgmodule.c
@@ -55,7 +55,7 @@
 	if (callback == NULL)
 		return 0; /* Default behavior */
 	Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
-	args = Py_BuildValue("O&s#", DlgObj_New, dialog, event, (int)sizeof(EventRecord));
+	args = Py_BuildValue("O&O&", WinObj_WhichWindow, dialog, PyMac_BuildEventRecord, event);
 	if (args == NULL)
 		res = NULL;
 	else {
diff --git a/Mac/Modules/dlg/dlggen.py b/Mac/Modules/dlg/dlggen.py
index ea64ab7..bd65cd0 100644
--- a/Mac/Modules/dlg/dlggen.py
+++ b/Mac/Modules/dlg/dlggen.py
@@ -20,16 +20,6 @@
 )
 functions.append(f)
 
-f = Function(void, 'CouldDialog',
-    (short, 'dialogID', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'FreeDialog',
-    (short, 'dialogID', InMode),
-)
-functions.append(f)
-
 f = Function(void, 'ParamText',
     (ConstStr255Param, 'param0', InMode),
     (ConstStr255Param, 'param1', InMode),
@@ -61,12 +51,6 @@
 )
 methods.append(f)
 
-f = Method(void, 'UpdtDialog',
-    (DialogPtr, 'theDialog', InMode),
-    (RgnHandle, 'updateRgn', InMode),
-)
-methods.append(f)
-
 f = Method(void, 'UpdateDialog',
     (DialogPtr, 'theDialog', InMode),
     (RgnHandle, 'updateRgn', InMode),
@@ -97,16 +81,6 @@
 )
 functions.append(f)
 
-f = Function(void, 'CouldAlert',
-    (short, 'alertID', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'FreeAlert',
-    (short, 'alertID', InMode),
-)
-functions.append(f)
-
 f = Method(void, 'GetDItem',
     (DialogPtr, 'theDialog', InMode),
     (short, 'itemNo', InMode),
@@ -222,3 +196,4 @@
     (short, 'numberItems', InMode),
 )
 methods.append(f)
+
diff --git a/Mac/Modules/dlg/dlgsupport.py b/Mac/Modules/dlg/dlgsupport.py
index 1eb5576..d3491fe 100644
--- a/Mac/Modules/dlg/dlgsupport.py
+++ b/Mac/Modules/dlg/dlgsupport.py
@@ -40,7 +40,7 @@
 	if (callback == NULL)
 		return 0; /* Default behavior */
 	Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
-	args = Py_BuildValue("O&s#", DlgObj_New, dialog, event, (int)sizeof(EventRecord));
+	args = Py_BuildValue("O&O&", WinObj_WhichWindow, dialog, PyMac_BuildEventRecord, event);
 	if (args == NULL)
 		res = NULL;
 	else {
