Im still a bit new at this, but try Freegadget window1 after your button click but before you create the 2nd window. I chucked this together using GUI maker...
Global Win1 Global Win2 Global Button1 ;open window 2 from within window 1 Global Button2 ;open window 1 from within window 2 Global Button3 ;common exit button. CreateWin1() While WaitEvent()<>$803 If EventSource() = Button1 Then createWin2() FreeGadget Win1 End If If EventSource() = Button3 Then createWin1() FreeGadget Win2 End If If EventSource() = Button2 Then End Wend Function CreateWin1() Win1 = CreateWindow("Window1",0,0,674,528,Desktop(),3) Button1 = CreateButton("Open Window2",373,241,100,20,Win1,0) SetGadgetLayout Button1,1,0,1,0 createexitbutton(Win1) End Function Function CreateWin2() Win2 = CreateWindow("Window2",54,127,674,528,Desktop(),3) Button3 = CreateButton("Open Window1",373,241,100,20,Win2,0) SetGadgetLayout Button3,1,0,1,0 createexitbutton(Win2) End Function Function createexitbutton(window) Button2 = CreateButton("Exit",178,240,100,20,window,0) SetGadgetLayout Button2,1,0,1,0 End Function