Another issue I've come across: I set the 'Next' button text to 'Register later' and then reset it to 'Next >' if the REGISTER dialog isn't displaying in the loop. However, wherever I put the reset code, the next dialog's 'Next' button text is always 'Register later'. Also, the "REGISTRATION" dialog show/hide code doesn't work. What am I doing wrong? Code below (the REGISTERBTN button is a button I've added to the REGISTER dialog):

! Wizard dialog definition(s)
Define Wizard Dialog "#1" (Welcome)
Define Wizard Dialog "#2" (Readme)
Define Wizard Dialog "#3" (License Agreement)
Define Wizard Dialog "REGISTER" (Custom Wizard Dialog) [ONINIT]
Define Wizard Dialog "REGISTRATION" (User Info) (%_SB_USERNAME%,,%_SB_USERSERIAL%)
Define Wizard Dialog "SELECTFOLDER" (Select Install Folder) (%MAINDIR%)
Define Wizard Dialog "#7" (Ready to Install) ()

! The Wizard Loop displays the dialog screens that the user sees in the installation
Loop Wizard (Abort Dialog Active)

If %_SB_DIALOGID% Equals "$REGISTER$" Then
Set Text "Register later" to ControlID "$NEXT_BUTTON$"

If %_SB_CONTROLID% Equals "REGISTERBTN" Then
Set Variable %REGISTER% to "T"
Show Wizard Dialog "REGISTRATION"
Display Message Box ("REGISTER=%REGISTER%", "Control Event Received")
Else
Hide Wizard Dialog "REGISTRATION"
End
Else
Set Text "Next >" to ControlID "$NEXT_BUTTON$"
End

If %_SB_DIALOGID% Does Not Equal "$REGISTER$" Then
Set Text "Next >" to ControlID "$NEXT_BUTTON$"
End