wx.PageSetupDialog & wx.PrintDialogData will not change default values.

Using Python2.4, wxPython2.6, Linux

According to Robin's book wxPython in Action if you setup the wx.PrintData before calling
the wx.PageDialogData and wx.PageSetupDialogData you can preset properties before
you open those dialogs. This just isn't working! I have tried numerous times and must be missing
something. Why isn't the code from the book working? I only saw one reference to this on
the net where Robin talks about it, where he says:
"As shown in the sample in the book you can set defaults like that in the
wx.PrintData object before you start the whole printing process. It's
used to carry settings info between the various dialogs and the print job"
http://archives.devshed.com/forums/python-122/setting-page-data-for-printing-1985662.html

I have varies examples and even the code straight from the book and I can't get it to work!
Example: (wxPython in Action, Listing 17.1 pages: 508-511)
<code begin>
class PrintFrameworkSample(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, size=(640, 480),
                          title="Print Framework Sample")
<snip>
        #setting up some wx.PrintData properties
        self.pdata = wx.PrintData()
        #I change some to see if could change dialog defaults
        self.pdata.SetPaperId(wx.PAPER_A4)
        self.pdata.SetOrientation(wx.LANDSCAPE)
        self.margins = (wx.Point(2,2), wx.Point(2,2))

    def OnPageSetup(self, evt):
        data = wx.PageSetupDialogData()
        #referencing wx.PrintData
        data.SetPrintData(self.pdata)
        data.SetDefaultMinMargins(True)
        data.SetMarginTopLeft(self.margins[0])
        data.SetMarginBottomRight(self.margins[1])
        dlg = wx.PageSetupDialog(self, data)
        if dlg.ShowModal() == wx.ID_OK:
            data = dlg.GetPageSetupData()
            self.pdata = wx.PrintData(data.GetPrintData())
            self.pdata.SetPaperId(data.GetPaperId())
            self.margins = (data.GetMarginTopLeft(),
                            data.GetMarginBottomRight())
        dlg.Destroy()

    def OnPrintSetup(self, evt):
        #referencing wx.PrintData
        data = wx.PrintDialogData(self.pdata)
        dlg = wx.PrintDialog(self, data)
        dlg.GetPrintDialogData().SetSetupDialog(True)
        dlg.ShowModal();
        data = dlg.GetPrintDialogData()
        self.pdata = wx.PrintData(data.GetPrintData())
        dlg.Destroy()

    def OnPrintPreview(self, evt):
        #referencing wx.PrintData
        data = wx.PrintDialogData(self.pdata)
        text = self.tc.GetValue()
        printout1 = TextDocPrintout(text, "title", self.margins)
        printout2 = TextDocPrintout(text, "title", self.margins)
        preview = wx.PrintPreview(printout1, printout2, data)
        if not preview.Ok():
            wx.MessageBox("Unable to create PrintPreview!", "Error")
        else:
            frame = wx.PreviewFrame(preview, self, "Print Preview",
                                    pos=self.GetPosition(),
                                    size=self.GetSize())
            frame.Initialize()
            frame.Show()
<code end>

This is straight from the book, unless I have a typo when select OnPageSetup()
or OnPrintSetup() nothing I change in wx.PrintData affects them. They have the
same values everytime. On the other hand OnPrintPreview does take the values
setup in self.pdata. But it doesn't have the ability to change them.

Help Please!!
Thanks, Dave