Python(wxPython) でネストした関数を書きました。
内側で一部コードが実行されません。
どのように修正したらよいでしょうか。

def timer_start(self, event):
    def time_out1():
        def time_out2():
            print "timeout2"            #実行される
            self.Close()                #実行される
            dlg = frmTop.frmTop()       #実行されない
            dlg.Show()                  #実行されない
            print "top should be shown" #実行される
            return True
        global TmrComing
        print "timeout1"
        TmrComing = 1
        self.mc.Play()
        tmr = threading.Timer(int(self.locker.timeout2), time_out2)
        tmr.start()
    print "timer start"
    global TmrComing
    TmrComing = 0
    tmr = threading.Timer(int(self.locker.timeout1), time_out1)
    tmr.start()

どうかご教示のほどよろしくお願いします。