diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx index dd8a8aebc215..28583f53275c 100644 --- a/vcl/source/window/brdwin.cxx +++ b/vcl/source/window/brdwin.cxx @@ -957,9 +957,9 @@ bool ImplStdBorderWindowView::Tracking( const TrackingEvent& rTEvt ) { // dispatch to correct window type (why is Close() not virtual ??? ) // TODO: make Close() virtual - vcl::Window *pWin = pBorderWindow->ImplGetClientWindow()->ImplGetWindow(); - SystemWindow *pSysWin = dynamic_cast(pWin); - DockingWindow *pDockWin = dynamic_cast(pWin); + VclPtr pWin = pBorderWindow->ImplGetClientWindow()->ImplGetWindow(); + SystemWindow *pSysWin = dynamic_cast(pWin.get()); + DockingWindow *pDockWin = dynamic_cast(pWin.get()); if ( pSysWin ) pSysWin->Close(); else if ( pDockWin )