Это не все, но уже сыпется по непонятной мне причине

При закрытии окна говорит - Window is already open
В чем собака порылась?
Код: Выделить всё
                           PROGRAM
                           MAP
                             Main
                             StartWindowProc(STRING ClassAddr)
                           END
SomeClass                  CLASS,TYPE
Wnd                          &Window
Init                         PROCEDURE(Window Wnd)
                           END
SC                         SomeClass
Window WINDOW('Demo'),AT(,,396,243),|
       FONT('MS Sans Serif',8,,FONT:regular),|
       CENTER,ICON('clarion.ico'), |
       GRAY,DOUBLE
     END
  CODE
  START(Main,10000)
!-------------------------------------------------------------
Main                       PROCEDURE
  CODE
  OPEN(Window)
  SC.Init(Window)
  ACCEPT
    CASE ACCEPTED()
    END
    CASE EVENT()
    OF EVENT:OpenWindow
      START(StartWindowProc,10000,ADDRESS(SC))
    END
  END
  CLOSE(Window)
!-------------------------------------------------------------
StartWindowProc            PROCEDURE(STRING ClassAddr)
QWindow WINDOW('Window'),AT(,,155,65),|
        FONT('MS Sans Serif',8,,FONT:regular),|
        CENTER,ICON('clarion.ico'), |
        GRAY,DOUBLE
       STRING('Window'),AT(65,27),USE(?Strings)
       BUTTON('&Close'),AT(55,47,45,14),USE(?Closeb)
     END
S                          &SomeClass
  CODE
  S &= (ClassAddr)
  OPEN(QWindow, S.Wnd)
  ACCEPT
    CASE ACCEPTED()
    OF ?Closeb
      POST(EVENT:CloseWindow)
    END
  END
  OPEN(QWindow)
!-------------------------------------------------------------
SomeClass.Init             PROCEDURE(Window Wnd)
  CODE
  SELF.Wnd &= Window
!-------------------------------------------------------------

 
 
